私は次のような関数を書くことができます:
public function removeRubbishTag(&$aString)
また、私はこのような機能を持つことができます:
public function removeRubbishTag($aString)
しかし、パラメータを注意深く見ると、他人を混同しやすい。 PHPコミュニティには、変数がpassByReferenceか値かを簡単に伝えるための命名規則がありますか?ありがとうございました。
回答:
回答№1は1残念ながら、これらの領域の一貫性はPHPの強力なスーツではありません。しかし、一般的にあなたの質問に対する答えは「いいえ、標準的な慣習はありません」です。
サイドノート:
参照渡しは参照渡しとまったく同じではないという事実により、事態はさらに複雑になります。
$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.
出力:
2
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
これながら:
$a = array(1,2,3);
function mutate(&$b){array_push($b, 1);}
mutate($a);
var_dump($a); // notice that array is altered here.
出力:
2
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(1)
}
この:
$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);
出力:
2
int(2)
そして
$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);
出力:
2
object(stdClass)#1 (1) {
["a"]=>
string(2) "B!"
}
回答№2の場合は0
PHPの関数に送信される変数の命名標準を見たことはありません。PHPのコーディング標準については、PEARコーディング標準を参照できます。 http://pear.php.net/manual/en/standards.php
ただし、これに関する変数の命名規則については言及されていません。
回答№3の場合は0
命名規則はありません。特にb / cは、オブジェクトと同様に、refによるパスが暗黙的である場合があります。