Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的数组类_Php_Arrays - Fatal编程技术网

PHP中的数组类

PHP中的数组类,php,arrays,Php,Arrays,我尝试创建一个数组类,并将其与PHP文件链接,如下所示: <?php $myarray=array('1','2','3'); array1_class=new array_class($myarray); array1_class->data[1]; // It should display '2' for example 我有什么办法可以这样做吗?有 class array_class { public $data; fun

我尝试创建一个数组类,并将其与PHP文件链接,如下所示:

    <?php  
    $myarray=array('1','2','3');
    array1_class=new array_class($myarray);
    array1_class->data[1]; // It should display '2' for example
我有什么办法可以这样做吗?

class array_class {
    public $data;
    function __construct(array $arr) {
        $this->data = $arr;
    }
}
但是,有什么用呢? 它的工作原理与数组完全相同(因为它是对象中的数组),但复杂度和冗长度增加,性能降低。 有什么用。。。那个


请看这里:

为什么不干脆
$myarray[2]
?public\uu构造($data){$this->data=$data;}您知道php中已经有一个数组类了吗?我投票结束这个问题,因为问题负责人在commets中说这是一个糟糕的问题,他们不知道最初为什么问这个问题。这个问题有一个更有效、更有用的答案,因为PHP已经自然地提供了问题中所要求的预期可用性,而没有专家
类的性能和工作开销。但我只是为他做了一个详细的回答:(叫喊是怎么回事?我知道有这样一个类,为什么它是相关的?OP明确提出了一种创建类的方法,而不是通过扩展arrayClass将数组行为添加到已经存在的类中……这不是叫喊,这是我尝试用斜体强调语调的方法;-你得到斜体了吗?斜体s是通过在“*”字符之间写入来获得的。我在考虑这个问题,我的问题毫无意义:P。不管怎样,我之所以问这个问题,是因为我有一个configuration.txt,我想把信息作为数组。函数文件\u get\u content()和explode()可能会对此有所帮助。新手问题抱歉:P
<?php

class MyLameArray
{
    /** @var array $data */
    public $data;

   /**
    * @param array $data
    */
    public function __construct(array $data)
    {
        $this->data = $data;
    }

   /**
    * @param string $key
    * @param mixed $value
    * @return bool
    */ 
    public function set($key, $value)
    {
        $this->data[$key] = $value;
    }

   /**
    * @param string $key
    * @return mixed|null
    */ 
    public function get($key)
    {
        return isset($this->data[$key]) ? $this->data[$key] : null;
    }

   /**
    * @param string $key
    * @return bool
    */ 
    public function has($key)
    {
        return isset($this->data[$key]);
    }
}
$data = array(
    'food' => 'fried chicken',
);
$x = new MyLameArray($data);

echo $x->has('fail') ? 'fail var set' : 'no fail var set';
echo "\n";
echo $x->has('food') ? 'food var set' : 'no food var set';
echo 'food is set to '.$x->get('food');
echo "\n";
$x->set('food', 'burger');
echo $x->data['food'];