PHP函数不返回值

PHP函数不返回值,php,function,return,Php,Function,Return,由于某些原因,我无法让我的函数返回字符串 $password = crypt_password_input($password, ""); //Encrypt Password longer than 8 characters function crypt_password_input($inputPassword, $newPassword) { $passwordLength = strlen($inputPassword); if($passwordLength >

由于某些原因,我无法让我的函数返回字符串

$password = crypt_password_input($password, "");

//Encrypt Password longer than 8 characters
function crypt_password_input($inputPassword, $newPassword)
{
    $passwordLength = strlen($inputPassword);

    if($passwordLength > 8){
        $encryptString = substr($inputPassword, 0, 8);
        $inputPassword = substr($inputPassword, 8);
        $newPassword .= crypt($encryptString, "HIDDENSALT");
        crypt_password_input($inputPassword, $newPassword);
    }else{
        $newPassword .= crypt($inputPassword, "HIDDENSALT");
        echo "Final: " . $newPassword . "<br/>";
        return $newPassword;
    }
}


echo "Encrypted from the input: " . $password . "<br/>";
$password=crypt\u password\u输入($password,”);
//加密长度超过8个字符的密码
函数crypt\u password\u input($inputPassword,$newPassword)
{
$passwordLength=strlen($inputPassword);
如果($passwordLength>8){
$encryptString=substr($inputPassword,0,8);
$inputPassword=substr($inputPassword,8);
$newPassword.=crypt($encryptString,“hiddensate”);
密码输入($inputPassword,$newPassword);
}否则{
$newPassword.=crypt($inputPassword,“hiddensat”);
echo“Final:.$newPassword.”
; 返回$newPassword; } } echo“从输入加密:”$暗语“
”;
这是此脚本的输出

最终版本:ltu1GUwy71wHkltVbYX1aNLfLYltEZ7Ww8GghfM

从输入加密:

在此条件块下,您没有
return
语句。我在那里又加了一句

if($passwordLength > 8)
{
    $encryptString = substr($inputPassword, 0, 8);
    $inputPassword = substr($inputPassword, 8);
    $newPassword .= crypt($encryptString, "HIDDENSALT");
    return crypt_password_input($inputPassword, $newPassword);
}

我不确定您的逻辑,但您的代码应该是这样的:

$password = crypt_password_input($password, "");

//Encrypt Password longer than 8 characters
function crypt_password_input($inputPassword, $newPassword)
{
    $passwordLength = strlen($inputPassword);

    if($passwordLength > 8)
    {
        $encryptString = substr($inputPassword, 0, 8);
        $inputPassword = substr($inputPassword, 8);
        $newPassword .= crypt($encryptString, "HIDDENSALT");
        return crypt_password_input($inputPassword, $newPassword);
    }
    else
    {
        $newPassword .= crypt($inputPassword, "HIDDENSALT");
        echo "Final: " . $newPassword . "<br/>";
        return $newPassword;
    }
}


echo "Encrypted from the input: " . $password . "<br/>";
$password=crypt\u password\u输入($password,”);
//加密长度超过8个字符的密码
函数crypt\u password\u input($inputPassword,$newPassword)
{
$passwordLength=strlen($inputPassword);
如果($passwordLength>8)
{
$encryptString=substr($inputPassword,0,8);
$inputPassword=substr($inputPassword,8);
$newPassword.=crypt($encryptString,“hiddensate”);
返回密码输入($inputPassword,$newPassword);
}
其他的
{
$newPassword.=crypt($inputPassword,“hiddensat”);
echo“Final:.$newPassword.”
; 返回$newPassword; } } echo“从输入加密:”$暗语“
”;

在代码中,递归调用输入,但不返回任何内容,因此,如果密码长度超过8个字符,它将失败。

实际上,您返回的字符串是
ltu1GUwy71wHkltVbYX1aNLfLYltEZ7Ww8GghfM
他不希望在密码长度达到8个或更多字符之前返回。是的,我确实有$password=crypt\u password\u input($password,”);出于某种原因,我没有写在这里,哈哈。我确实看到我需要真实条件下的回报。谢谢各位:D