САМОУЧИТЕЛЬ PHP 4



         

Логические переменные - часть 2


Листинг 7.2. Логические переменные

<?

$a=100;

$b=true;

echo "a = $a<br>";

echo "b = $b<br>";

if($a==$b) echo 'а "равно" b!';

?>

Как ни странно, но программа печатает, что "а=100 и b=1", а затем с гордостью заявляет, что "a равно b". Хотя в данном примере мы прекрасно понимаем, что так и должно быть (потому что на самом-то деле переменные сравниваются как логические), поэтому будьте осторожны, когда вместо $a используется, например, число, возвращенное функцией. Иначе это может породить ошибку, которая "убьет" несколько часов на ее поиски.

Конечно, при выполнении арифметических операций над логической переменной она превращается в обычную, числовую переменную. Однако при написании этой книги я наткнулся на интересное исключение: по-видимому, операторы ++ и -- для увеличения и уменьшения переменной на 1 не работают с логическими переменными [В. О.20] (листинг 7.3):

Листинг 7.3. Особенности операторов ++ и --

<?

$b=true;

echo "b: $b<br>";

$b++;

echo "b: $b<br>";

?>

Эта программа выводит оба раза значение 1, во всяком случае, в моей версии PHP 4.03.

Некоторые особенности работы с логическими переменными вполне могут измениться в следующих версиях PHP. Их описание приведено здесь лишь с одной целью: уберечь вас от возможных ошибок, которые трудно будет найти в программе.




Содержание  Назад  Вперед