if条件如何从函数php返回值
我正在尝试处理来自另一个函数的错误消息 我从curl传递响应url 然后在处理值中,但我无法回显或返回该值 这是handlingerror函数if条件如何从函数php返回值,php,function,curl,Php,Function,Curl,我正在尝试处理来自另一个函数的错误消息 我从curl传递响应url 然后在处理值中,但我无法回显或返回该值 这是handlingerror函数 function gettaskIderrorhandler($s) { if (strpos($s, "ERROR_WRONG_USER_KEY")) { return "ERROR WRONG USER KEY"; } if (strpos($s, "ERROR_KEY_DOES_NOT_EXIST")) {
function gettaskIderrorhandler($s)
{
if (strpos($s, "ERROR_WRONG_USER_KEY")) {
return "ERROR WRONG USER KEY";
}
if (strpos($s, "ERROR_KEY_DOES_NOT_EXIST")) {
return "ERROR KEY DOES NOT EXIST";
}
if (strpos($s, "ERROR_ZERO_BALANCE")) {
return "ERROR ZERO BALANCE";
}
if (strpos($s, "ERROR_PAGEURL")) {
return "ERROR PAGEURL";
}
if (strpos($s, "ERROR_NO_SLOT_AVAILABLE")) {
return "ERROR NO SLOT AVAILABLE";
}
if (strpos($s, "ERROR_ZERO_CAPTCHA_FILESIZE")) {
return "ERROR ZERO CAPTCHA FILESIZE";
}
if (strpos($s, "ERROR_TOO_BIG_CAPTCHA_FILESIZE")) {
return "ERROR TOO BIG CAPTCHA FILESIZE";
}
if (strpos($s, "ERROR_WRONG_FILE_EXTENSION")) {
return "ERROR WRONG FILE EXTENSION";
}
if (strpos($s, "ERROR_IMAGE_TYPE_NOT_SUPPORTED")) {
return "ERROR IMAGE TYPE NOT SUPPORTED";
}
if (strpos($s, "ERROR_UPLOAD")) {
return "ERROR UPLOAD";
}
if (strpos($s, "ERROR_IP_NOT_ALLOWED")) {
return "ERROR IP NOT ALLOWED";
}
if (strpos($s, "IP_BANNED")) {
return "IP BANNED";
}
if (strpos($s, "ERROR_BAD_TOKEN_OR_PAGEURL")) {
return "ERROR BAD TOKEN OR PAGEURL";
}
if (strpos($s, "ERROR_GOOGLEKEY")) {
return "ERROR GOOGLEKEY";
}
if (strpos($s, "ERROR_CAPTCHAIMAGE_BLOCKED")) {
return "ERROR CAPTCHAIMAGE BLOCKED";
}
if (strpos($s, "MAX_USER_TURN")) {
return "MAX USER TURN";
}
if (strpos($s, "ERROR: NNNN")) {
return "ERROR: NNNN";
}
if (strpos($s, "ERROR_BAD_PARAMETERS")) {
return "ERROR BAD PARAMETERS";
}
}
这是我调用旋度的函数
function gettaskId()
{
$s = "ERROR_WRONG_USER_KEY";
echo $cherror = gettaskIderrorhandler($s);
}
如何从函数右侧获取返回值您需要更改所有行,如
if (strpos($s, "ERROR_WRONG_USER_KEY")) {
到
strpos()
返回索引,如果匹配在开头,索引可以是0
,如果0
是错误的,那么if
在这些情况下将不会成功。除非您只想匹配那些特定错误,否则如果您可以使用模式匹配任何错误,它将减少代码的重复性
function gettaskIderrorhandler($s)
{
if (preg_match('/ERROR_[A-Z_]+/', $s, $matches)) {
return str_replace('_', ' ', $matches[0]);
}
}
谢谢,这是工作,使用inStr()它可以工作,没有额外的条件。我可以问一下你的回音gettaskIderrorhandler($s),如果是的话。尝试“echo gettaskiderrohandler($s;”,,,,但如果您试图返回一个值,请尝试“return gettaskiderrohandler($s);”。。。
function gettaskIderrorhandler($s)
{
if (preg_match('/ERROR_[A-Z_]+/', $s, $matches)) {
return str_replace('_', ' ', $matches[0]);
}
}