php中遇到下列錯誤 ,Fatal error: Can't use function return value in write context,解決辦法


網上搜到的解決辦法,我的問題解決,

來源網址: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"、NULLFALSE、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()

?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM