Ich kann eine Funktion schreiben wie:
public function removeRubbishTag(&$aString)
Ich kann auch eine Funktion wie diese haben:
public function removeRubbishTag($aString)
Aber wenn man sich die Params genau ansieht, ist es soleicht zu verwirren. Verfügt die PHP-Community über eine Namenskonvention, mit der die Benutzer leicht erkennen können, ob eine Variable passByReference oder value ist? Vielen Dank.
Antworten:
1 für die Antwort № 1Leider ist Konsistenz in diesen Bereichen kein starker Bestandteil von PHP. Aber im Allgemeinen lautet die Antwort auf Ihre Frage "Nein, es gibt keine Standardkonvention".
Randnotiz:
Erschwert wird dies durch die Tatsache, dass Referenzübergabe nicht ganz dasselbe ist wie Referenzübergabe:
$a = array(1,2,3);
function mutate($b){array_push($b, 1); $b = 2; echo $b;}
mutate($a);
var_dump($a); // notice that array is not altered here.
Ausgänge:
2
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
Während dieses:
$a = array(1,2,3);
function mutate(&$b){array_push($b, 1);}
mutate($a);
var_dump($a); // notice that array is altered here.
Ausgänge:
2
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(1)
}
Und das:
$a = array(1,2,3);
//reassigning a reference changes the original value!
function mutate(&$b){array_push($b, 1); $b = 2; echo $b;}
mutate($a);
var_dump($a);
Ausgänge:
2
int(2)
Und
$a = new stdClass();
$a->a = "a";
// but... modifying an object will always result in the modification:
function mutate($b){$b->a = "B!"; $b = 2; echo $b;}
mutate($a);
var_dump($a);
Ausgänge:
2
object(stdClass)#1 (1) {
["a"]=>
string(2) "B!"
}
0 für die Antwort № 2
Ich habe keinen Benennungsstandard für Variablen gesehen, die in PHP in Funktionen gesendet werden. Bezüglich der Codierungsstandards für PHP können Sie auf die PEAR-Codierungsstandards verweisen. http://pear.php.net/manual/en/standards.php
Hierfür werden jedoch keine Namenskonventionen für Variablen erwähnt.
0 für die Antwort № 3
Es gibt keine Namenskonvention. Besonders b / c manchmal, wie bei Objekten, ist die Übergabe von ref implizit.