繁体   English   中英

在php中的类中定义数组

[英]Defining an array within a class in php

我在PHP中有以下数组

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

我也有一个用属性xyz在php中定义的类

   $screenerItem = new \StdClass();
   $screenerItem->xyz =0;

如何使数组$ criteria成为我的screenerItem类属性的一部分?

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

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

正如@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();

尝试这个

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM