PHP:在关联数组中使用变量?

时间:2009-12-23 10:53:11

标签: php arrays

似乎我错过了PHP中关于数组的重要内容。

这有什么问题:

var $condition = array('Status.name = ' => 'PUBLISHED');
var $paginate = array('conditions' => $condition );

这很好用:

var $paginate = array('conditions' => array('Status.name = ' => 'PUBLISHED' ));

4 个答案:

答案 0 :(得分:3)

为什么var关键字?通常你不需要这个 - 除非这些是对象上的字段?如果是这样,您将需要使用$ this引用它们。以下示例之一应该适合您:

$condition = array('Status.name = ' => 'PUBLISHED');
$paginate = array('conditions' => $condition );

var $condition = array('Status.name = ' => 'PUBLISHED');
var $paginate = array('conditions' => $this->condition );

在没有看到更多代码的情况下,我很难确定哪一个适用于您和/或这是否能解决您的问题。希望它指出你正确的方向。

答案 1 :(得分:3)

var部分告诉我你正在定义一个班级。在这种情况下,您无法使用另一个对象的内容初始化对象变量;你只能用常量(包括数组)初始化它们。

<?php
  class test {
    var $test1 = array('test_11' => 10);
    var $test2 = array('test21' => $test1); // Error
  }
?>

如果需要使用另一个变量的内容初始化变量的内容,请使用构造函数。

<?php
  class test {
    function test() {
      $this->test1 = array('test_11' => 10);
      $this->test2 = array('test21' => $this->test1);
    }
  }
?>

答案 2 :(得分:1)

var关键字用于声明类成员变量,而不是非类变量。
在PHP5中支持var关键字,尽管已弃用。

但对于 var 关键字,一切都按预期工作,我们在转储paginate数组时会看到以下内容:

array(1) {
  ["conditions"]=>
  array(1) {
    ["Status.name = "]=>
    string(9) "PUBLISHED"
  }
}

答案 3 :(得分:0)

对我来说,两者都不起作用。但是,当我从变量中删除var关键字时,两者都能很好地工作。在php4中使用了var关键字。