Форум сетевых администраторов
Показаны 6 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Устное и практическое решение (http://netadmin.ws/forum/showthread.php?threadid=9464)


Помещено Alex_k 04-09-2004 в 14:50:

Устное и практическое решение

Есть скрипт:

$i=0;

echo "ДО * $i<br>";

if ( $i == 'Блин' ) {
echo '<h2>Вы этого не должны видеть, Блин!!!</h2>';
$i = 'Блин';
}

echo "ПОСЛЕ * $i<br>";


Вопрос:
Чему равняется переменная $i в конце при выводе?
Ð_ешите его устно и практически.


Помещено DimonT 04-09-2004 в 21:15:

там к целым числам все преобразовывается при сравнении...
так что должен получиться блин =)

__________________
вот так вот...

ICQ 937160


Помещено Alex_k 05-09-2004 в 00:08:

Целые числа?
Поставте в начале $i=1;

Вопрос стоит опять, почему ноль дает TRUE?


Помещено polo 05-09-2004 в 03:07:

Потому-что строка преобразуется в число, т.е. получаеться 0==intval('блин'). Используй идентичность ===, в этом случае сравниваються не только значения но и типы переменных.

__________________
Всегда есть решение.


Помещено Alex_k 06-09-2004 в 15:11:

Обьясните что происходит если $i=TRUE; и $i=FALSE;
при этом вторая часть неважно какая 'Блин' только не 0 или '0'.
Здеси получается все наоборот.
При таких значениях получается что игнорируется ==
И если TRUE то условие выполняется, и если FALSE то нет.
При сравнении с нулем в строке или числом условие опять нарушается.
Какой принцип выполнения такого условия.


Помещено lord 09-09-2004 в 10:28:

quote:
Первоначальное сообщение от Alex_k
Обьясните что происходит если $i=TRUE; и $i=FALSE;
при этом вторая часть неважно какая 'Блин' только не 0 или '0'.
Здеси получается все наоборот.
При таких значениях получается что игнорируется ==
И если TRUE то условие выполняется, и если FALSE то нет.
При сравнении с нулем в строке или числом условие опять нарушается.
Какой принцип выполнения такого условия.



В первом случае "Блин" приводится к int, во втором к boolean, вот и получается:


PHP:

$i
=0;
$i == 'str' # приводится к int, 0 == 0

$i=false;
$i == 'str' # приводится к bool, false == 0, т.е.  false


Формат времени GMT. Текущее время 09:28.
Показаны 6 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.