Содержание
Сюрпризы PHP
Коллекция различных сюрпризов из PHP5.6 и PHP7. Убедиться можно тут: PHP онлайн
Функция с одноименными аргументами
function foo($a, $a) { var_dump(func_get_args()); return $a; } echo foo('1', '2');
PHP 5.6 выдаст такой результат:
array(2) { [0]=> string(1) "1" [1]=> string(1) "2" } 2
PHP 7 - фатальную ошибку:
PHP Fatal error: Redefinition of parameter $a in /home/jdoodle.php on line 3
Инкремент
Чему равно выражение?
$i = 0; $i = $i++ + $i++; var_dump($i);
Ответ: 1
Float
Приведение типов
serialize и unserialize модификаторов свойств объекта
Что будет, если в момент serialize
свойство было private
, а в момент unserialize
стало protected
?
PHP 5.6: protected свойство НЕ устанавливается верным образом после unserialize.
PHP 7.3: protected свойство устанавливается верно, тем же значением, что и было.