Я пытаюсь сделать небольшую анкету, задавая людям вопросы и отвечаю либо да, либо нет.

Я пытаюсь выполнить первые две функции для третьей функции, а также проверяю, были ли установлены ответы, но я получаю:

Неустранимая ошибка: невозможно использовать возвращаемое значение метода в контексте записи в.

Может ли кто-нибудь помочь мне или указать мне правильный путь?

    <?php
class survey {

    ... some functions ...

    function check($rep1, $rep2){

        if (isset($this->q1($rep1)) && isset($this->q2($rep2))) {
            #######################    #######################
            echo "Thank you for the feedback";
        }elseif (! array_key_exists(@$_POST['answer'], $var)) {
            echo "Please select an option<br/>";
        }
    }
}
?>

Ошибка находится внутри функции проверки в первой строке.

php
0
Panki0 18 Мар 2013 в 01:57
1
Хороший ответ спасибо ни за что
 – 
Panki0
18 Мар 2013 в 02:07

1 ответ

Лучший ответ

Поскольку функции всегда возвращают что-то (даже если это NULL), использование для них isset() бессмысленно.

isset - это языковая конструкция, которая принимает имя переменной и сообщает вам, существует ли она.

В таком случае, почему бы просто не написать if(isset($_POST['answer']))?

4
Niet the Dark Absol 18 Мар 2013 в 02:01
Спасибо, Колинк. Вы мне очень помогли. Единственное, что мне нужно запускать функции q1 и q2 только после того, как на вопросы будут даны ответы .. есть идеи, как это можно сделать? Еще раз спасибо за помощь новичку ..
 – 
Panki0
18 Мар 2013 в 02:19
Не следует ли isset переменной, которая существует, но установлена ​​на null, возвращать false?
 – 
user2742648
18 Мар 2013 в 02:29
@ Panki0: Это возможно без ошибок в PHP 5.5. Все, что вам нужно сделать, это перейти на эту версию PHP. В настоящее время он доступен в альфа- или бета-версии, так что вы можете протестировать его уже сегодня. php.net
 – 
hakre
18 Мар 2013 в 02:30
@igorpan: да. isset, в основном проверяет наличие NULL, а не то, установлена ​​ли переменная.
 – 
hakre
18 Мар 2013 в 02:30
Я исправил это, ребята. Спасибо всем за попытку помочь! Я очень ценю это! Просто мысли о противоположном / обратном действительно заставили сценарий работать. Еще раз большое спасибо.
 – 
Panki0
18 Мар 2013 в 02:57