PHP中的数组类

时间:2017-07-28 13:40:04

标签: 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

我有什么方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

class array_class {
    public $data;
    function __construct(array $arr) {
        $this->data = $arr;
    }
}

然而,有什么用? 它的工作方式与数组完全相同(因为它是对象中的数组),但复杂性和冗长度都会提高,性能会降低。 有什么用......

答案 1 :(得分:0)

<?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'];

在此处查看:https://3v4l.org/P9cdD