если условие, как вернуть значение из функции php - PullRequest
0 голосов
/ 23 января 2020

я пытаюсь обработать сообщение об ошибке из другой функции, я передаю URL ответа из curl, затем в значение обработки, но я не могу отобразить или вернуть значение

это функция обработки ошибки

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";
    }
}

и вот функция, когда я вызываю curl

function gettaskId()
{     
      $s = "ERROR_WRONG_USER_KEY";

   echo $cherror = gettaskIderrorhandler($s);

}

как я могу получить значение из функции right

Ответы [ 2 ]

1 голос
/ 23 января 2020

Вам нужно изменить все строки, такие как

if (strpos($s, "ERROR_WRONG_USER_KEY")) {

на

if (strpos($s, "ERROR_WRONG_USER_KEY") !== false) {

strpos(), возвращает индекс, который может быть 0, если совпадение в начале и 0 является ложным, поэтому if не будет успешным в этих случаях.

0 голосов
/ 23 января 2020

Если вы не хотите сопоставлять только эти указанные c ошибки, это сделает код менее повторяющимся, если вы сможете использовать шаблон для сопоставления с любой из ошибок.

function gettaskIderrorhandler($s)
{
    if (preg_match('/ERROR_[A-Z_]+/', $s, $matches)) {
        return str_replace('_', ' ', $matches[0]);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...