【问题标题】:Fatal error: Can't use method return value in write context in致命错误:无法在写入上下文中使用方法返回值
【发布时间】:2013-03-17 21:57:24
【问题描述】:

我正在尝试制作一个小型调查表,询问人们问题并回答是或否。

我正在尝试在第三个函数中执行前两个函数,并检查是否设置了答案,但我得到了:

致命错误:无法在写入上下文中使用方法返回值。

有人可以帮助我或指出正确的道路吗?

    <?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


【解决方案1】:

由于函数总是返回 something(即使它是 NULL),所以在它们上使用 isset() 是没有意义的。

isset 是一种语言结构,它接受一个变量名并告诉您它是否存在。

既然如此,为什么不直接写if(isset($_POST['answer']))呢?

【讨论】:

  • 谢谢 Kolink。你一直很有帮助。唯一的问题是,只有在回答完问题后,我才需要运行 q1 和 q2 函数。有什么想法可以做到这一点吗?再次感谢您帮助新手..
  • @Kolink 不应该设置存在但设置为 null 的变量返回 false?
  • @Panki0:这在 PHP 5.5 中是可行的且不会出错。您需要做的就是升级到该 PHP 版本。它目前提供 alpha 或 beta 版本,因此您今天就可以对其进行测试。 php.net
  • @igorpan:是的。 isset,基本上检查 NULL,而不是是否设置了变量。
  • 我已经解决了伙计们。感谢大家尝试提供帮助!对此,我真的非常感激!只是想相反/反向实际上使脚本起作用。再次非常感谢。
猜你喜欢
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多