首页 / PHP / 从自己的方法调用PHP构造函数
从自己的方法调用PHP构造函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从自己的方法调用PHP构造函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1426字,纯文字阅读大概需要3分钟。
内容图文
![从自己的方法调用PHP构造函数](/upload/InfoBanner/zyjiaocheng/815/208ae0f622674218abc425b912bac60e.jpg)
我一直在寻找一种方法来调用类的构造函数,类似于“parent :: _ construct”,但对于类本身(类似“self :: _ construct”,虽然这不起作用).为什么这样?考虑以下(不起作用,顺便说一下)……
class A {
var $name;
function __construct($name) {
$this->name = $name;
}
function getClone($name) {
$newObj = self::__construct($name);
return $newObj;
}
}
class B extends A {
}
在实际实现中,还有其他属性可以区分B类和A类,但两者都应该具有“getClone”方法.如果在类A的对象上调用它应该产生另一个类A的对象,并且如果在类B上调用它应该产生另一个类B的对象.
当然,我可以通过重写B类中的“getClone”并将类名硬编码到方法中来实现这一点(即$newObj = new B($name)),但是编写方法会更好.一次,告诉它实例化一个自己类的对象,无论该类是什么.
PHP会让我这样做吗?
解决方法:
您可以使用
$clsName = get_class($this);
return new $clsName();
但是niko的解决方案也适用于单例模式http://php.net/manual/en/language.oop5.static.php
从php 5.3开始,您可以使用static关键字的新功能.
<?php
abstract class Singleton {
??? protected static $_instance = NULL;
??? /**
?? ? * Prevent direct object creation
?? ? */
??? final private function? __construct() { }
??? /**
?? ? * Prevent object cloning
?? ? */
??? final private function? __clone() { }
??? /**
?? ? * Returns new or existing Singleton instance
?? ? * @return Singleton
?? ? */
??? final public static function getInstance(){
?? ? ?? if( static::$_instance == null){
static::$_instance = new static();
?? ? ?? }
?? ? ?? return static::$_instance;
??? }
???
}
?>
内容总结
以上是互联网集市为您收集整理的从自己的方法调用PHP构造函数全部内容,希望文章能够帮你解决从自己的方法调用PHP构造函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。