PHP-调用函数是否正确?
这是我的密码:PHP-调用函数是否正确?,php,function,Php,Function,这是我的密码: $oldPhone = $_POST["phone"]; $newPhone = makeInteger($oldPhone); lengthMustBe($newPhone, 10, "Please enter a valid 10-digit phone number."); 以下是函数: function lengthMustBe($str, $length, $errormsg) { if (strlen($str) != $length) {
$oldPhone = $_POST["phone"];
$newPhone = makeInteger($oldPhone);
lengthMustBe($newPhone, 10, "Please enter a valid 10-digit phone number.");
以下是函数:
function lengthMustBe($str, $length, $errormsg) {
if (strlen($str) != $length) {
$status = "failure";
$error = $errormsg;
}
};
function lengthMustBe($str, $length, $errormsg) {
if (strlen($str) != $length) {
return array("failure", $errormsg);
}
else
{
return array("success", "");
}
}
这个函数很容易解释
当我试图传递它时,$status仍然是“success”(在页面顶部定义)。如何在页面顶部定义$status?我猜$status在这个函数中的作用域使它与在页面顶部定义的变量不同。如何在页面顶部定义$status?我的猜测是$status在这个函数中的作用域使得它与页面顶部定义的变量不同。我认为$status不是全局变量。。。这意味着在该函数中只会出现“失败”,但当您尝试从其他位置调用它时,会调用全局$status,它在页面顶部被定义为“成功”
我认为$status不是全球性的。。。这意味着在该函数中只会出现“失败”,但当您尝试从其他位置调用它时,会调用全局$status,它在页面顶部被定义为“成功”
变量的作用域在函数长度必须的范围内 您可以将
$status
定义为如下所示的全局变量:
function lengthMustBe($str, $length, $errormsg) {
global $status;
// ...
$status
var的范围在函数lengthMustBe内
您可以将$status
定义为如下所示的全局变量:
function lengthMustBe($str, $length, $errormsg) {
global $status;
// ...
您需要设置
$status
变量,如下所示:
$tmpArray = lengthMustBe($newPhone, 10, "Please enter a valid 10-digit phone number.");
$status = $tmpArray[0];
$statusMsg = $tmpArray[1];
你的职能是:
function lengthMustBe($str, $length, $errormsg) {
if (strlen($str) != $length) {
$status = "failure";
$error = $errormsg;
}
};
function lengthMustBe($str, $length, $errormsg) {
if (strlen($str) != $length) {
return array("failure", $errormsg);
}
else
{
return array("success", "");
}
}
不要使用globals这只是一个糟糕的想法…您需要设置
$status
变量,如下所示:
$tmpArray = lengthMustBe($newPhone, 10, "Please enter a valid 10-digit phone number.");
$status = $tmpArray[0];
$statusMsg = $tmpArray[1];
你的职能是:
function lengthMustBe($str, $length, $errormsg) {
if (strlen($str) != $length) {
$status = "failure";
$error = $errormsg;
}
};
function lengthMustBe($str, $length, $errormsg) {
if (strlen($str) != $length) {
return array("failure", $errormsg);
}
else
{
return array("success", "");
}
}
不要使用globals,这只是一个糟糕的想法…删除;在函数结束时,您需要在所有代码之上定义函数。如何检查
$status
值?删除;在函数结束时,您需要在所有代码之上定义函数。如何检查$status
值?是的,我知道如何返回“failure”,但我还需要返回错误消息。。。我该怎么做?@RickBross-检查更新的答案。。您只需返回状态和消息的数组。您可以将“failure”和“success”字符串更改为布尔值,如true或false。是的,我知道如何返回“failure”,但我还需要返回错误消息。。。我该怎么做?@RickBross-检查更新的答案。。您只需返回状态和消息的数组。您可以将“failure”和“success”字符串更改为布尔值,如true或false。