몇 가지 PHP 함수를 겪고 있었고 다음을 알아 차리지 못했습니다.
<?php
function foo(&$var) { }
foo($a); // $a is "created" and assigned to null
$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)
$c = new StdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>
통지 array_key_exists()
및 property_exists()
기능. 첫 번째 매개 변수에서 속성 이름 (배열의 키)은 첫 번째 매개 변수이고 두 번째 매개 변수는 두 번째 매개 변수입니다. 직감적으로, 그들은 비슷한 서명을 가질 것으로 기대할 것입니다. 이로 인해 혼동이 발생할 수 있으며이 유형을 수정하면 개발 시간이 낭비 될 수 있습니다.
PHP 또는 그 문제에 대한 어떤 언어도 관련 함수의 서명을 일관성있게 만드는 것을 고려하지 않아야합니까?