/ / Gibt es eine Namenskonvention, um PHP als Referenz oder als Wert zu übergeben? - PHP, Namenskonventionen

Gibt es eine Benennungskonvention, um den PHP-Pass als Referenz auszuführen oder als Wert zu übergeben? - PHP, Namenskonventionen

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 № 1

Leider 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.