Saya telah melalui beberapa fungsi PHP dan saya tidak dapat melihat hal-hal berikut:
<?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)
?>
Perhatikan array_key_exists()
dan property_exists()
fungsinya. Dalam yang pertama, nama properti (kunci untuk array) adalah parameter pertama sedangkan yang kedua adalah parameter kedua. Dengan intuisi, orang akan mengharapkan mereka memiliki tanda tangan yang serupa. Hal ini dapat menyebabkan kebingungan dan waktu pengembangan dapat terbuang dengan melakukan koreksi jenis ini.
Bukankah seharusnya PHP, atau bahasa apa pun dalam hal ini, mempertimbangkan untuk membuat tanda tangan dari fungsi terkait konsisten?