0

重複の可能性:
関数の結果を逆参照するためのPHP構文

私はphp5.4でいくつかのコードを書きましたが、サーバーは5.3しか実行できないため、修正する必要のある構文エラーがいくつかあります。

サイトにアクセスすると、このエラーが発生します

 Parse error: syntax error, unexpected '[' in /home/content/51/6663351/html/application/controllers/admin.php on line 247

247行目は

if(count($results->result()) > 0)
            {
 this here>>>   $data['data'] = $results->result()[0];
                $data['cats'] = $this->db->get('category')->result();
                $data['curCat'] = $this->db->get('products_categories',     array('product_id' => $id))->result()[0];   

だから私はコードを次のように変更してみました:

 $data = array();
 if(count($results->result()) > 0)
            {
                $data['data'] = $results->result()[0];
                $data['cats'] = $this->db->get('category')->result();
                $data['curCat'] = $this->db->get('products_categories', array('product_id' => $id))->result()[0];

ただし、$ data = array();を追加します。何も修正しませんでした。誰かが何が悪いのか考えていますか?

4

1 に答える 1

5

これ$results->result()[0]は、配列の逆参照と呼ばれます。これはPHP5.4の新機能であるため、5.3では実行できません。最初にその配列要素を返し、次にそれをコードで使用する必要があります。

マニュアルから:

<?php
function getArray() {
    return array(1, 2, 3);
}

// on PHP 5.4
$secondElement = getArray()[1];

// previously
$tmp = getArray();
$secondElement = $tmp[1];

// or
list(, $secondElement) = getArray();
?>
于 2013-01-31T02:54:20.903 に答える