網上搜到的解決辦法,我的問題解決,
來源網址:http://hi.baidu.com/siyuantlw/item/b3665334940f4d312f20c46b
今天朋友遇見這種錯誤 不知道咋解決Fatal error: Can't use function return value in write context 。
百度了一下也沒有什么結果 原代碼貼出:
$array['group_rank']=empty(intval($this->post['group_rank'])) ? '0' : intval($this->post['group_rank']);
不得其解,哪個函數不能用函數返回值呢? 將$this->post['group_rank'] 轉成變量 $a 然后 $b=intval($a) 再測試 錯誤消失。。
原來 empty函數 的問題 查查手冊 才搞明白
empty
(PHP 4, PHP 5)
empty — 檢查一個變量是否為空
描述bool empty ( mixed $var )
如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認為是空的,如果 var 為空,則返回 TRUE。
除了當變量沒有置值時不產生警告之外,empty() 是 (boolean) var 的反義詞。參見轉換為布爾值獲取更多信息。
例 2476. empty() 與 的一個簡單比較。
<?php
$var = 0;
// 結果為 true,因為 $var 為空
if (empty($var)) {
echo '$var is either 0 or not set at all';
}
// 結果為 false,因為 $var 已設置
if (!isset($var)) {
echo '$var is not set at all';
}
?>
注意: 由於這是一個語言結構而非函數,因此它無法被變量函數調用。
注意:empty()只檢測變量,檢測任何非變量的東西都將導致解析錯誤。換句話說,后邊的語句將不會起作用: empty(addslashes($name))。
變量函數
PHP 支持變量函數的概念。這意味着如果一個變量名后有圓括號,PHP 將尋找與變量的值同名的函數,並且將嘗試執行它。除了別的事情以外,這個可以被用於實現回調函數,函數表等等。
變量函數不能用於語言結構,例如 ,,,,,, 以及類似的語句。需要使用自己的外殼函數來將這些結構用作變量函數。
例 17.14. 變量函數示例
<?php
function foo() {
echo "In foo()<br />\n";
}
function bar($arg = '') {
echo "In bar(); argument was '$arg'.<br />\n";
}
// This is a wrapper function around echo
function echoit($string)
{
echo $string;
}
$func = 'foo';
$func(); // This calls foo()
$func = 'bar';
$func('test'); // This calls bar()
$func = 'echoit';
$func('test'); // This calls echoit()
?>
還可以利用變量函數的特性來調用一個對象的方法。
例 17.15. 變量方法范例
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>