возражение возвращается как логическое значение внутри условия if - PullRequest
0 голосов
/ 23 сентября 2010

Я не знаю достаточно о том, когда и как возвращаются различные переменные.Учитывая, что у меня есть условное утверждение с объектом для проверки внутри этого.Я прав, что это возвращается как логическое значение.

if($id = $oE->validate($_POST, $_FILES)){
...
}

Что я действительно хочу, чтобы это возвращало массив ошибок, если есть какие-либо ошибки, в противном случае он вернет $ id обновленногоcontent.

Учитывая вышесказанное, кажется, что возвращается булево значение true, если какое-либо значение вообще возвращается объектом validate () ??

1 Ответ

1 голос
/ 23 сентября 2010

PHP интерпретирует любое ненулевое значение как истинное. Вам нужно передать ссылку, содержащую любые коды ошибок, и заставить функцию либо возвращать false при сбое, либо id при успехе. то есть:

class Validator()
    {
    function validate($post,$files,$errorRef)
        {
        //Your code here
        if ($success)
            {
            return $id;
            }
        else
            {
            $errorRef = $errorCode;
            return false;
            }
        }
    }
//
$oE = new Validator;
$error = NULL;
$id = $oE->validate($_POST,$_FILES,&$error);
if ($id !== false) //If validator did not return false
    {
    //Stuff happens
    }
else
    {
    switch ($error)
        {
        //Error Handling Stuff
        }
    }
...