似乎我错过了PHP中关于数组的重要内容。
这有什么问题:
var $condition = array('Status.name = ' => 'PUBLISHED');
var $paginate = array('conditions' => $condition );
这很好用:
var $paginate = array('conditions' => array('Status.name = ' => 'PUBLISHED' ));
答案 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关键字。