使用Epicodus的教程。想知道为什么变量$ input_word的值不会因为strrev($ input_word)而改变;
$input_word = "stressed";
> $output_word = strrev($input_word);
> echo $input_word . " reversed is " . $output_word;
"stressed reversed is desserts"
答案 0 :(得分:3)
strrev方法不会修改输入参数。
它返回反向链而不修改输入var,这是设计的。
答案 1 :(得分:2)
大多数PHP函数不会更改其参数的值。这也适用于大多数string functions。
strrev()
的文档将其描述为:
string strrev(string $ string)
这意味着该函数接收一个字符串参数(名为$string
)并返回一个字符串。它接收作为参数传递的字符串(变量,常量或字符串文字)的副本,并且它无法更改原始字符(无论如何都不能更改常量和文字)。
为了能够更改其中一个参数的值,函数需要获取它passed by reference。通过引用传递其值的参数在函数的文档中使用引用符号(&
)进行了描述。
例如,数组函数sort()
被描述为:
bool sort(array& $ array [,int $ sort_flags = SORT_REGULAR])
请注意第一个参数(&
)前面的参考号($array
)。此函数修改$array
。
(第二个参数($sort_flags
)周围的方括号表示它是可选的。)