PHP中的数组类
我尝试创建一个数组类,并将其与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
$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'];