LINUX.ORG.RU

[php] Почему при кастинге хеша в bool получается false?

 


0

1

Привет.

php 5.2.12

Случайно наткнулся на такое:

$var = "123";
echo (bool)$var;

Результат: true.

$var = "123";
$var = md5($var);
echo (bool)$var;

Результат: false.

Чем хеш настолько отличается от строки, что при кастинге получается 0?

Спасибо.

Ответ на: комментарий от rival

А в чем смысл проверять hash как bool?

Ну, например,

return $user->hash() ? 'activated' : 'not activated';

И, да, у меня тоже

$ php -r '$var="123"; $var=md5($var); $var=(bool)$var; var_dump($var);'
bool(true)

KRoN73 ★★★★★
()

if( isset($hash) )
if( strlen($hash) > 0 )

xorik ★★★★★
()
vir@zavulon ~ $ php -a
Interactive shell

php > $var = "123";
php > $var = md5($var);
php > echo (bool) $var;
1
php > exit;

vir@zavulon ~ $ php -v
PHP 5.3.5-0.dotdeb.0 with Suhosin-Patch (cli) (built: Jan  7 2011 00:30:52) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH
VirRaa ★★★
()
Ответ на: комментарий от KRoN73

> $user->hash()

md5($user->somestr())


Это вообще-то разные вещи. Если бы мне нужно было проверять таким образом, я бы возвращал null or something в случаях, когда hash'а нет, но md5()-то всегда возвращает строку с хешем... или нет?

rival ★★
()
Ответ на: комментарий от rival

>Это вообще-то разные вещи.

А, да, понял.

но md5()-то всегда возвращает строку с хешем... или нет?


Да, всегда.

KRoN73 ★★★★★
()
Ответ на: комментарий от Frakhtan-teh

>Глюки eaccelerator.

А pecl-apc уже с конца прошлого года периодически порождает ошибки с невозможностью выделения памяти.

Пришлось перелезть на xcache :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> А pecl-apc уже с конца прошлого года периодически порождает ошибки с невозможностью выделения памяти.

А какие именно? Пользую APC, пока не встречал ошибок.

VirRaa ★★★
()
Ответ на: комментарий от VirRaa

>А какие именно?

«Unable to allocate memory for pool»

Пользую APC, пока не встречал ошибок.


Видно, повезло. Ошибка распространённая, судя по поискам решений в Интернете :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.