我正在尝试创建一个数组类并将其与PHP文件链接,如下所示:
<?php
$myarray=array('1','2','3');
array1_class=new array_class($myarray);
我想尝试创建一个可以将数组放入其中的类,然后按如下方式调用它们:
array1_class->data[1]; // It should display '2' for example
我有什么方法可以做到这一点吗?
答案 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