LINUX.ORG.RU

Подозреваю, потому что 'p' == 0 (а после вывода 0 проваливается ниже и выводит «php»)

При этом 'p' != '0', можешь проверить.

Приведение типов в php вообще ко многим забавным эффектам приводить может.

sholom
()

Смысла сейчас учить php - нет. В любом дистре по дефолту есть python. А для python - куча софта и язык лёгкий и адекватный.

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

Ага. А php очень быстрый? Python в pypy реализации быстрее ruby, php, perl раз в 5.

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

А ещё древнее статьи не было? PHP за 5 лет очень сильно ушёл вперёд в плане производительности.

PHP 5.5.9: 5.314279794693
PHP 7.1.0beta1: 2.4753890037537

Python 2.7.6: 4.921817
Python 3.4.3: 7.68682336807251 (с заменой xrange на range)

sjinks ★★★
()
Последнее исправление: sjinks (всего исправлений: 1)
Ответ на: комментарий от ganafozi

0 это не false, но если привести 0 к типу bool то 0 будет false. Пихать в свитч разные типы это извиняюсь маразм. Когда switch сравнивает строку p с типом int он приводит строку к int. (int)'строка' будет равна 0. (bool)'строка' равна true всё тут адекватно. Подробнее о базовых принципах пхп на php.net

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

(int)'строка' будет равна 0

Только когда первый ненулевой символ строки начинается с буквы и эта буква не 'e' :)

(bool)'строка' равна true

$ php -r 'var_dump((bool)"0", (bool)"00");'
bool(false)
bool(true)



Это, конечно, далеко не JS по уровню извращений при преобразованиях типов, но всё равно подводных камней много. Всё жду, когда в PHP аргументам функций можно будет указывать явно примитивные типы...

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

Совершенно верно.

Только когда первый ненулевой символ строки начинается с буквы

по тому и

Подробнее о базовых принципах пхп на php.net

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