奇怪的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