<?php
$a = NULL;
$a++;
echo "a value is $a";
?>
Он выводит: значение равно 1.
<?php
$a = NULL;
echo "a values is $a";
?>
It outputs:
a value is
Смутно об этом.. пожалуйста, объясните мне
Это PHP Type Casting
http://php.net/manual/en/language.types.type-juggling.php
PHP автоматически изменяет тип переменной в зависимости от операции.
Объяснение:
Ваш код
<?php
$a = NULL; // $a is NULL
$a++;
?>
Но приращение ++
применимо только к целочисленным значениям, поэтому, когда вы пишете $a++
, он автоматически преобразует $a
в integer и, поскольку он равен NULL
, он устанавливается в 0
и затем увеличивается.
Для -
<?php
$a = NULL;
$a++;
echo "a value is $a";
?>
Когда эта операция выполняется $a
сначала преобразуется в integer
и получает в ней значение 0
поскольку оно содержит NULL
. Таким образом, это печать 1
качестве значения.
Для -
<?php
$a = NULL;
echo "a values is $a";
?>
Никакие преобразования не применяются здесь, поскольку они напечатаны как есть. Так что там ничего нет.