странное поведение при сравнении

Alexandre

PHPПенсионер
странное поведение при сравнении

PHP 5.2.2
PHP:
$buff = fgets($fd, 4096 );
if ( ord($buff) == 10 )
результат false,
хотя при этом, в отладчике показывает, что ord($buff) = (int)10
для этой же строки -
PHP:
if ( 10 == ord($buff)  )
результат true

что бы это значило???
 

cDLEON

Онанист РНРСlub
Хм, а толку с ваших советов ?
Нафиг проверять тип, если сравнение идёт без учёта типа переменной?
 

zerkms

TDD infected
Команда форума
PHP:
$buff = fgets($fd, 2); 
var_dump($buff);
var_dump(ord($buff));
var_dump(ord($buff) == 10);
 

SiMM

Новичок
fgets-то тут явно не при чём, так что пример можно было и сократить до
PHP:
$buff = "\x0a";
var_dump($buff);
var_dump(ord($buff));
var_dump(ord($buff) == 10);
Последнее у меня выдаёт true. WinXP, PHP 5.2.4
 

MiksIr

miksir@home:~$
# php -r '$buff = "\x0a"; var_dump(ord($buff) == 10);'
bool(true)
# echo >test
# php -r '$fd=fopen("test","r"); $buff = fgets($fd, 2); var_dump(ord($buff) == 10);'
bool(true)
# php -v
PHP 5.2.4-pl0-gentoo (cli)
 

Alexandre

PHPПенсионер
как ни странно, у меня
Код:
$  php -r '$fd=fopen("test","r"); $buff = fgets($fd, 2); var_dump(ord($buff) == 10);'
bool(true)
а вот в ZendStudio false

-~{}~ 08.11.07 15:42:

PHP 5.2.4 with Suhosin-Patch 0.9.6.2 (cli) (built: Sep 14 2007 10:11:01)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Suhosin v0.9.20, Copyright (c) 2002-2006, by Hardened-PHP Project
with Zend Optimizer v3.2.4, Copyright (c) 1998-2007, by Zend Technologies
with Zend Debugger v5.2.5, Copyright (c) 1999-2007, by Zend Technologies
 

phprus

Moderator
Команда форума
cDLEON
У меня
PHP 5.2.4 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 31 2007 02:20:37)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

и все работает, так что если проблема и есть то, я думаю, что она где-то в несовместимости этого патча с ZendStudio или с Zend Optimizer или с Zend Debugger
 
Сверху