PHP tips and tricks ------------------- .. toctree:: :maxdepth: 1 :caption: Contents: tips/class_is_valid_class.rst tips/precision.rst tips/store_float_as_index.rst tips/case_insensitive_cast.rst tips/this_this.rst tips/no-type-but-string.rst tips/no_unknown_for_array_merge.rst tips/no-returntype-enforced.rst tips/as-as-as.rst tips/no_dnf_for_catch.rst tips/new_on_object.rst tips/unfinished_class.rst tips/yield_not_return_by_reference.rst tips/enum_exists.rst tips/no_semi_colon_in_sight.rst tips/glob_with_hidden_files.rst tips/file_append_contents.rst tips/array_reduce.rst tips/this_is_not_the_current_class.rst tips/class_constant_different_types.rst tips/no_change_to_this.rst tips/file_put_array.rst tips/get_the_generator.rst tips/redefine_native_functions.rst tips/static_cannot_call_non_static.rst tips/before_after.rst tips/cast_is_strong.rst tips/roman_loops.rst tips/finally_catches_exception.rst tips/abstract_again.rst tips/always_compatible_variadic.rst tips/yield_not_return.rst tips/try-catch-finally.rst tips/nullAsArray.rst tips/sensitiveParameter.rst tips/no_property_in_interface.rst tips/uncallable_function.rst tips/easy_wither.rst tips/array_is_full.rst tips/const_without_parenthesis.rst tips/cast_are_case_insensitive.rst tips/not_same_error.rst tips/when_space_matters.rst tips/array_array_array.rst tips/yield_cannot_never.rst tips/class_invasion_reciproque.rst tips/typed_by_enum.rst tips/reference_on_static.rst tips/scalar_types_are_unqualified.rst tips/array_append.rst tips/coalesce_is_null.rst tips/class_alias_alias.rst tips/mixed_and_no_type.rst tips/abstract_constant.rst tips/static_static_property.rst tips/attributes_for_all.rst tips/run_any_phar_file.rst tips/static_outside_method.rst tips/enum_case_comparisons.rst tips/all_static_curly_syntaxes.rst tips/no_empty_function.rst tips/while_i_--.rst tips/unexpected_keys.rst tips/recursive_yield.rst tips/documenting_parameter.rst tips/catch_is_optional.rst tips/void_parameter.rst tips/unset_properties.rst tips/multipleAliases.rst tips/plus_plus_minus_minus.rst tips/when_a_constant_is_impossible.rst tips/constant_are_mutable.rst tips/quick-dto.rst tips/stealth-generator.rst tips/quick_serialize.rst tips/clone_clone_clone.rst tips/readonly_and_private.rst tips/interface_exceptions.rst tips/exp_minus_one.rst tips/infinite_is_reachable.rst tips/squared_negative.rst tips/negating_a_variable.rst tips/numeric_separator_string.rst tips/confusing_identifier.rst tips/relaxed_syntax_with_const.rst tips/closure_to_call.rst tips/static_get_this.rst tips/array_intersect_uassoc_insensitive.rst tips/class_and_constants.rst tips/dont_forget_yield.rst tips/phptip-1.rst tips/foreach_same_keys.rst tips/battle_of_definitions.rst tips/variadic_all_yield.rst tips/refactor_str_pos.rst tips/is_a_and_instanceof.rst tips/export_properties.rst tips/cast_to_int.rst tips/returntypewillchange_for_all.rst tips/URL_as_comments.rst tips/coalesce_and_assignation.rst tips/missing_methods_are_fatal.rst tips/initialize_with_coalesce.rst tips/keys_are_integers.rst tips/fastest_stdclass_creation.rst tips/elephpant.rst tips/internal_static_call.rst tips/strict_types_exceptions.rst tips/playing_with_the_limit.rst tips/constructor_consistency.rst tips/object_is_not_a_type.rst tips/forgotten_throw.rst tips/keywords_in_namespaces.rst tips/variable_optimisation.rst tips/self_in_interface.rst tips/instanceof_class.rst tips/stdclass_tracking.rst tips/misplaced_parenthesis.rst tips/check_for_names.rst tips/int_back_to_negative.rst tips/not_all_strings.rst tips/recursive_arrow_function.rst tips/null_equal_false.rst tips/recursive_closure.rst tips/cast_precedence.rst tips/enum_as_name.rst tips/type_is_not_available.rst tips/namespace_stack.rst tips/catch_interfaces.rst