2
A
回答
0
可以实现这种功能与拦截__get()
class ClassName
{
function __get($propertyname){
$this->{$propertyname} = new $propertyname();
return $this->{$propertyname}
}
}
尽管上一篇文章中的示例在将属性更改为public时也可以正常工作所以你可以从外面访问它。
3
0
如果你的意思懒initalization,这是众多方法之一:
class SomeClass
{
private $instance;
public function getInstance()
{
if ($this->instance === null) {
$this->instance = new AnotherClass();
}
return $this->instance;
}
}
0
$obj = new MyClass();
$something = $obj->something; //instance of Something
使用下面的延迟加载模式:
<?php
class MyClass
{
/**
*
* @var something
*/
protected $_something;
/**
* Get a field
*
* @param string $name
* @throws Exception When field does not exist
* @return mixed
*/
public function __get($name)
{
$method = '_get' . ucfirst($name);
if (method_exists($this, $method)) {
return $this->{$method}();
}else{
throw new Exception('Field with name ' . $name . ' does not exist');
}
}
/**
* Lazy loads a Something
*
* @return Something
*/
public function _getSomething()
{
if (null === $this->_something){
$this->_something = new Something();
}
return $this->_something;
}
}
相关问题
- 1. 无法在PHP循环中实现此次Ago功能
- 2. Silverlight - 如何实现此功能?不错的功能
- 3. 如何在Flex中实现AJAX功能
- 4. 如何在clisp中实现“doc”功能?
- 5. 功能如何do_raw_spin_lock在Linux中实现
- 6. 如何在PHP中实现“谁在线”功能?
- 7. 如何在PHP中实现这样的呼叫中心功能?
- 8. 如何在PHP中实现c的#def功能
- 9. 如何在PHP中实现这样的功能?
- 10. 如何在PHP中实现DataList(asp.net)的一种功能?
- 11. 如何实现diff功能?
- 12. 如何实现MenuStrip功能?
- 13. 如何实现Gmail邮件这样的功能映射此功能
- 14. 如何使用此功能实现jQuery插件?
- 15. 如何实现此功能的扫描仪?
- 16. 如何实现Corona中的“NSUserDefaults”功能?
- 17. 如何使此PHP功能更有效
- 18. 此语言功能('缺少类型')尚未在Roslyn中实现
- 19. 如何在JavaScript中实现此功能?让不确定,离婚,妻子说!
- 20. 如何将此实用功能转换为扩展功能?
- 21. 您是如何在MVVM中成功实现MessageBox.Show()功能的?
- 22. 什么能在PHP中实现瓶颈cURL的多功能?
- 23. 如何在PHP中实现
- 24. 如何在MVC4中执行此功能?
- 25. 发现使用此功能
- 26. 如何在mysql中实现此查询
- 27. 如何在SQL中实现此算法?
- 28. 如何在bootstrap中实现此网格?
- 29. 如何在HTML中实现此JavaScript
- 30. iPhone功能:如何重建此功能?