奇怪的PHP错误:'不能在写入上下文中使用函数返回值'

我得到这个错误,我不能做它的头或尾。

确切的错误信息是:

致命错误:无法在第48行的/home/curricle/public_html/descarga/index.php中的写入上下文中使用函数返回值

48行是:

if (isset($_POST('sms_code') == TRUE ) {

任何人都知道发生了什么?

PS这是完整的功能,以防万一:

function validate_sms_code() {

    $state = NOTHING_SUBMITED;

    if (isset($_POST('sms_code') == TRUE ) {
        $sms_code = clean_up($_POST('sms_code'));
        $return_code = get_sepomo_code($sms_code);

        switch($return_code) {

          case 1:
            //no error
            $state = CORRECT_CODE;
            break;

          case 2:
            // code already used
            $state = CODE_ALREADY_USED;
            break;

          case 3:
            // wrong code
            $state = WRONG_CODE;
            break;

          case 4:
            // generic error
            $state = UNKNOWN_SEPOMO_CODE;
            break;

          default:
            // unknown error
            $state = UNKNOWN_SEPOMO_CODE;
            throw new Exception('Unknown sepomo code: ' . $return_code);
            break;
        }

    } else {
        $state = NOTHING_SUBMITED;
    }
    dispatch_on_state($state);
}

你意思是

if (isset($_POST['sms_code']) == TRUE ) {

尽管顺便说一句,你的意思是

if(isset($_POST['sms_code'])) {

在函数返回中使用空时也会发生这种情况:

!empty(trim($someText)) and doSomething()

因为空不是一个函数,而是一个语言结构(不确定),它只需要变量:

对:

empty($someVar)

错误:

empty(someFunc())

自PHP 5.5起,它支持的不仅仅是变量。 但是如果你在5.5之前需要它,使用trim($name) == false 。 从空文档。


if (isset($_POST('sms_code') == TRUE ) {

将此行更改为

if (isset($_POST['sms_code']) == TRUE ) {

你正在为$_POST使用parentheseis(),但你想要方括号[]

:)

要么

if (isset($_POST['sms_code']) && $_POST['sms_code']) { 
//this lets in this block only if $_POST['sms_code'] has some value 
链接地址: http://www.djcxy.com/p/69241.html

上一篇: Weird PHP error: 'Can't use function return value in write context'

下一篇: PHP error: Parse error: syntax error, unexpected end of file... on line 170