Справка по переменной PHP - PullRequest
0 голосов
/ 14 июля 2011
require_once('classes/class.validation.php');

$array = $_POST['array'];
$pass_profanity = false;
$validation = new Validation;
function check_for_profanity($input){
    if(is_array($input)){
        foreach($input as $row){
            if(is_array($row)){
                check_for_profanity($input);
            } else {
                $pass_profanity = $validation->check_for_profanity($row);
            }
        }
    } else {
        $pass_profanity = $validation->check_for_profanity($input);
        return;
    }
    return;
}
check_for_profanity($array);

Но я получаю ошибку:

Примечание: неопределенная переменная: проверка в /Library/WebServer/Documents/file.php в строке 22 * ​​1005 *

Неустранимая ошибка:Вызов функции-члена check_for_profanity () для необъекта в /Library/WebServer/Documents/file.php в строке 2

Не могу понять, есть мысли ???

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 14 июля 2011

Вы можете получить доступ к переменной в вашей функции с помощью global:

function check_for_profanity($input){
    global $validation;
    ...
}

Или, лучше было бы получить ее через параметр:

function check_for_profanity($input, $validation){
    ...
}

check_for_profanity($array, $validation);

Прочтите руководство PHP - переменная область действия для получения дополнительной информации

1 голос
/ 14 июля 2011

Используйте ключевое слово global: PHP.net: Область действия переменной

$validation = new Validation;
function check_for_profanity($input){

    global $validation;

    //The rest of your function
}
1 голос
/ 14 июля 2011

Вы определяете $ validation = new Validation; вне функции. Поэтому PHP не знает, что он существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...