Ich habe einige PHP-Funktionen durchgearbeitet und konnte nicht umhin, Folgendes zu bemerken:
<?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)
?>
Beachten Sie die array_key_exists()
und property_exists()
Funktion. Im ersten Fall ist der Eigenschaftsname (Schlüssel für ein Array) der erste Parameter, im zweiten Fall der zweite Parameter. Intuitionell würde man erwarten, dass sie eine ähnliche Signatur haben. Dies kann zu Verwirrung führen und die Entwicklungszeit kann durch Korrekturen dieses Typs verschwendet werden.
Sollte PHP oder eine andere Sprache nicht in Betracht ziehen, die Signaturen verwandter Funktionen konsistent zu machen?