我必须做一个函数,它返回一个与另一个变量相反的字符串。我有一个问题。
<?php
$parolaAlContrario="";
function ribaltaStringa($nome){
$lenght=strlen($nome);
for($i=0;$i<$lenght+4;$i++){
$parolaAlContrario[$i]=$nome[$lenght-1];
$lenght=$lenght-1;
}
echo implode($parolaAlContrario);
}
ribaltaStringa("marco"); ?>
此代码返回&#39; ocram&#39;。我不明白为什么如果我将implode($parolaAlContrario)
放在函数之外,结果是变量$parolaAlContrario
为空。为什么呢?
答案 0 :(得分:1)
这是因为您的变量的scope是在您的函数之外。您需要将变量分配给函数的结果。
你应该让你的函数返回变量,并在完成时分配它。
function ribaltaStringa($nome)
{
$lenght = strlen($nome);
$parolaAlContrario = array();
for($i = 0; $i < $lenght + 4; $i++) {
$parolaAlContrario[$i] = $nome[$lenght - 1];
$lenght = $lenght - 1;
}
return implode($parolaAlContrario);
}
注意,我不是回显变量,而是返回变量。这允许我们在函数完成后将结果分配给变量。
我还在循环外部的函数内部定义了变量$parolaAlContrario
,这将允许您返回值。
当您调用该函数时,您应该再次分配该变量。
$parolaAlContrario = ribaltaStringa("marco");
同样,您可以通过在声明期间更改变量的名称来创建一个全新的变量单词。 E.G:
$newVariable = ribaltaStringa("marco");
答案 1 :(得分:1)
如果你能让它变得复杂,为什么要简单?你不需要为此编写自己的函数。只需使用PHP的内置函数strrev()
即可反转字符串,如果需要,可以将其保存为新变量:
$parolaAlContrario = strrev('marco');
尝试一下: https://3v4l.org/RmdE1