在php中定义一个类中的数组

时间:2015-03-08 07:37:27

标签: php

我在php中有以下数组

   $criteria = array();
     $criteria['x'] = array();
     $criteria['y'] = array();
     $criteria['z'] = array();

我还在php中使用属性xyz

定义了一个类
   $screenerItem = new \StdClass();
   $screenerItem->xyz =0;

如何将我的数组$条件作为我的screenerItem类属性的一部分?

我尝试了这个但是没有用,有人可以帮助我知道这种语法有什么问题:

   $screenerItem->$criteria = array();
   $screenerItem->$criteria['x'] = array();
   $screenerItem->$criteria['y'] = array();
   $screenerItem->$criteria['z'] = array();

2 个答案:

答案 0 :(得分:2)

正如@Nahid建议你可以在构造函数中填充你的类属性。 另一种方式(如果您的类属性是公共的)是:

$criteria_array = array(/* your array here */);
$screenerItem->criteria = $criteria_array;
// Notice that I don't use $ in front of criteria as it's class property.

当然,你的尝试也是合法的:

// Once again no $ before criteria
$screenerItem->criteria = array();
$screenerItem->criteria['x'] = array();

答案 1 :(得分:1)

试试这个

class MyClass{
    public $criteria=array();

    function __construct(){
        $this->criteria=array(
            'x'=>array(),
            'y'=>array(),
            'z'=>array()
            );
    }
}


$screenItem=new MyClass;

或者你可以使用这个惯例

class MyClass{
    public $criteria=array();

    function __construct($array){
        $this->criteria=$array;
    }
}


$data=array(
    'x'=>array(),
    'y'=>array(),
    'z'=>array()
);

$screenItem=new MyClass($data);