То ли воздух нынче пьян, то ли леший нынче рьян...

С.

Продвинутый новичок
Есть оператор равенства (==) и оператор эквивалентности (===).. Для "честных" строк операция равенства как бы не имеет смысла, только эквивалентность. Ну не ошибку же выкидаывать, если знак == поставили.между строками. Считай, что "абв"=="где", это неявное "абв"==="где", если оба аргумента не приводятся к 'оценочному' типу.
 

Тугай

Новичок
В Perl:
a) скалярный контекст трех типов: строковый, числовой, безразличный;
б) $a eq $b - $a и $b приводятся к строкам и сравниваются $a == $b - $a и $b приводятся к числам и сравниваются.

PHP не Perl и оператор всего один - '==', а по ману
PHP не требует (и не поддерживает) явного типа при определении переменной; тип переменной определяется по контексту, в котором она используется.
Чтобы сохранить один значок ' == ', расширили понятие контекста добавив анализ операндов.
Получилось криво, хотели сэкономить, а получили невозможность сравнения '8' и '08' короткой записью и в строковом контексте и в PHP 4 ввели '===', типа выкрутились.

В PHP нет никакой логики, логика есть в Perl, Phyton, а в PHP человеческая лень. :)
 

WMix

герр M:)ller
Партнер клуба
Тугай
мое мнение все наоборот, пхп очень богатый язык, который написан для людей а не для машин, и то что такие проблемы возникают раз в пятилетку еще раз подтверждает что логика php подобна человеческой.
 

Vladson

Сильнобухер
PHP не плох и не хорош, он просто есть и он такой какой есть.

Да много было совершено ошибок (глобалсы всякие, кавычки всякие магические, итд) которые ещё исправлять и исправлять. Да очень местами язык плохой (много нюансов о которых надо помнить) но он в тоже время достаточно прост и функционален чтоб писать вполне себе работоспособные продукты и вполне себе в небольшие сроки.
 
Сверху