PHP → PHP - глобально и надёжно
Жили были дед и баба, ели кашу с молоком, баба стала использовать php, дед разозлился и дал ложкой в лоб.
if ('3434') {
print 'True';
} else {
print 'False';
}
if ('0') {
print 'True';
} else {
print 'False';
}
Вобщем-то предсказуемое поведение PHP, но не верное.
Из этой же оперы:
var_dump(array('123' => '344'));
array(1) {
[123]=>
string(3) "344"
}
$a1 = array(12 => 155);
$a2 = array(15 => 344);
var_dump(array_merge($a1, $a2));
array(2) {
[0]=>
int(155)
[1]=>
int(344)
}
Это же явная проблема. Особенно видно в таком примере:
var_dump(array('123' => 'Abc', 123 => 'Xyz'));
array(1) {
[123]=>
string(3) "Xyz"
}
После этого я стал поддерживать деда в его деле с ложкой и бабкиным лбом.
КОММЕНТАРИИ (3)
ЗЫ: а деду не надо злиться на бабку, нужно уважать ее выбор, быть толерантнее и просто показать ей решения более элегантные и интересные :)
Дело в том, что последний пример может быть источником редких, плохо повторимых ошибок. От этого неявного преобразования одни неприятности, причём скрытые. Это, конечно же, особенность языка, но IMHO очень нехорошая. Жаль времени, потраченного на выявление таких вот нюансов.
Зарегистрируйтесь или выполните Вход для того чтобы оставлять комментарии



Да, последний пример огорчает конечно. Но лучше знать недостатки в лицо, что б умело с ними бороться. Это все удел нестрогой типизации языка.