首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中实现这个特性?

如何在PHP中实现这个特性?
EN

Stack Overflow用户
提问于 2010-02-21 16:12:57
回答 4查看 100关注 0票数 3

当访问不存在的成员时,自动创建对象。

代码语言:javascript
复制
$obj = new ClassName();
$newObject = $ojb->nothisobject;

有可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-21 16:35:38

您可以使用Interceptor __get()实现这种功能。

代码语言:javascript
复制
class ClassName
{
function __get($propertyname){
$this->{$propertyname} = new $propertyname();
return $this->{$propertyname}
}
}

尽管上一篇文章中的示例在属性更改为public时也能正常工作,所以您可以从外部访问它。

票数 0
EN

Stack Overflow用户

发布于 2010-02-21 16:15:24

使用幻数重载函数

票数 3
EN

Stack Overflow用户

发布于 2010-02-21 16:16:44

如果您的意思是惰性initalization,这是许多方法中的一种:

代码语言:javascript
复制
class SomeClass
{
    private $instance;

    public function getInstance() 
    {
        if ($this->instance === null) {
            $this->instance = new AnotherClass();
        }
        return $this->instance;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2306467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档