मैं कुछ 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, या उस विषय के लिए कोई भाषा नहीं होनी चाहिए, संबंधित कार्यों के हस्ताक्षर को सुसंगत बनाने पर विचार करें?