$this['mailer.username'] 是什么意思?怎么实现的?
重点是那个 $this[]。
这里看到的: segmentfault.com/a/119000001475212... 。
好像是这个:www.php.net/manual/en/class.arraya... ?提交这个问题之后过了几个小时问 ChatGPT 问出来的。不过不太敢信 ChatGPT。大概是只要类实现了那个接口然后 $this 也一样能用那种语法?
问了 ChatGPT 之后几个小时我试了一下,在实现了 ArrayAccess 接口的类的内部不能用类似 $this[‘abc’] 的形式:
<?php
class Test implements ArrayAccess{
function __construct(
private $content = array()
){}
function offsetExists(mixed $offset): bool{
return isset($this->content[$offset]);
}
function offsetGet(mixed $offset): mixed{
return isset($this->content[$offset]) ? $this->content[$offset] : null;
}
function offsetSet(mixed $offset, mixed $value): void{
if (is_null($offset)) {
$this->content[] = $value;
} else {
$this->content[$offset] = $value;
}
}
function offsetUnset(mixed $offset): void{
unset($this->content[$offset]);
}
function thisTest(){
$this['test'] = 123;
}
}
$test = new Test();
$test['abc'] = 1;
echo $test['abc'];
$this->thisTest();
肯定是我搞错了什么吧?
推荐文章: