четверг, 18 октября 2007 г.

String to int voodoo

Интересное поведение PHP: для людей писавших на нормальных языках это поведение сносит крышу:

<?
echo "<pre>";
echo (int)("all"==true)."\n"; // 1
echo (int)("all"==false)."\n"; // 0
echo (int)(1==true)."\n"; // 1
echo (int)(0==true)."\n"; // 0
echo (int)("all"==1)."\n"; // 0
echo (int)("all"==0)."\n"; // 1
echo "</pre>";
?>


А всё потому, что PHP при общении между строками и int приводит строки as is. То есть:
<?
echo "<pre>";
echo (int)"all"."\n"; // 0
echo (int)"123"."\n"; // 123
echo (int)"0123"."\n"; // 123
echo (int)"0xff"."\n"; //0
echo (int)"8sd"."\n"; // 8
echo "</pre>";
?>


Но! Тут уже начинает сносить крышу у меня:
<?
echo "<pre>";
echo (int)("0xff"==0)."\n"; // 0
echo (int)((int)"0xff"==0)."\n"; // 1
echo (int)("0xff"==255)."\n"; // 1
echo "</pre>";
?>


Это обьяснить и понять уже сложнее.

вторник, 16 октября 2007 г.

Ритмы Толкиена

Ритмы Толкиена:

Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!


Взято отсюда.

четверг, 4 октября 2007 г.

Сегодня получил интересный отклик на размещенную вакансию (Ищем хорошего PHP программиста), где был явно указан опыт работы с PHP5 (от 2 лет). Мне(Я) позвонил (П)претендент:

(П): Здравствуйте. Вы ищите хорошего PHP программиста?
(Я): Здравствуйте. Да, есть такое дело.
(П): А знание PHP обязательно?
(Я): Да..
(П): Извините, я вам не подхожу.

Upd: Из жизни животных: только что случилась ревизия шесть шесть шесть.