Типы и PHP

vital

Больной Компом Детектед
29.01.2006
2 432
33
#1
твык от типов вообще
P.S. обожаю язык PHP
Зря. У этого пхп из-за явного отсутствия типов - очень много проблем. С той же безопасностью, например. Да.. Такой бред может делать только С. Вот толькоy надо ли, а?)
 
E

ensane

#3
PHP провоцирует "неиспользование" типов. Из-за этого иногда бывают глупые ляпсусы.
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#4
Из-за этого иногда бывают глупые ляпсусы.
Угу.
например, ф-я strstr(), может вернуть 0, может false. При этом, проверка результата ее работы выглядит примерно так
if strstr()==0 //один результат
if strstr()==false //второй
if strstr()===false //третий.

Ну не бред ли?
Не говоря уже, о классических ошибках в духе
$id=$_GET['id'];
и даллее mysql_query("...WHERE id=$id");
Вот вам и готовая mysql injection.

Когда, со строгими типами такого бы не было. А писать как-нить в духе $id=(int)$_GET['id']; далеко не у всех хвает ума. И вся беда в том, что пых _сам_ к этому провоцирует. т.е сам язык провоцирует к ошибкам, когда как все другие ЯП - ограждают.

ну и вообще.. ПРо убогость пыха можно много написать..
 

acorn

PHP Developer
29.08.2004
585
3
#6
Ну не бред ли?
Не говоря уже, о классических ошибках в духе
$id=$_GET['id'];
и даллее mysql_query("...WHERE id=$id");
ORMы и фрэймворки в помощь

например, ф-я strstr(), может вернуть 0, может false. При этом, проверка результата ее работы выглядит примерно так
if strstr()==0 //один результат
if strstr()==false //второй
if strstr()===false //третий.
чем бред? зато как красиво:
if($isDefault) - и пофик там 0 или false или null... или if($idAccount) - аналогично.

имхо, все эти проблемы высосаны из пальца и при нормальном подходе скорее плюс ;)

а смысл?

сорри за сумбурность, с днём студента всех :)
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#7
if($isDefault) - и пофик там 0 или false или null... или if($idAccount) - аналогично.
1. Ты забыл !
2.
Я тебе о том и написал. Что такая конструкция не всегда верна. Потому что может быть ==false а может быть ===false и это _разные_ случаи - поэтому не пофиг.
К тому же, с нуллом, тоже не все так просто.
3. if($isDefault) вот как раз такая конструкция возможна в любом языке с типом boolean =)
ORMы и фрэймворки в помощь
Это тоже беда пыха, что что бы исправить недочеты языка надо использовать что-то дополнительное. Гугли книжки про безопасность скриптов=)
при нормальном подходе скорее плюс
При подходе таком, как был задуман изначально? в смеси хтмл+пхп, на маленьких хоумпейджах да. Но когда пишешь что-то мало-мальски серъёзное, следить за этим прораммисту _вместо_ интерпретатора - мне кажется глупо.