【php什么是构造函数】教程文章相关的互联网学习教程文章

在PHP构造函数中return $this的用途是什么?【代码】

我一直都做:class Class1{protected $myProperty;public function __construct( $property ){$this->myProperty = $property;} }但是最近,我遇到了一种特殊的技术,例如:class Class2{protected $myProperty;public function __construct( $property ){$this->myProperty = $property;return $this;} }在实例化此类时,可以这样做:$property = 'some value';$class1 = new Class1( $property );$class2 = new Class2( $property )...

PHP-初始化父变量(带构造函数)【代码】

我是php的新手!我的任务是创建具有构造函数的class(Request),该构造函数具有一个参数($_SERVER)和另一个扩展Request的类(GetRequest).我的代码是:<?phpclass Request{protected $server;public function __contruct($ser){$this->server = $ser;}public function getMethod(){return $this->server['REQUEST_METHOD'];}public function getPath(){return $this->server["PHP_SELF"];}public function getURL(){return 'http://'....

在构造函数PHP中传递对$this的引用【代码】

我有一个叫做Request的类.在该类的某个时刻,我使用以下代码创建一个新的控制器,并在构造函数中传递$this:$controller = new $this->_controllerName($this);我的控制器构造函数如下:public function __construct(Request $request) {parent::__construct($request);// More stuff }如果我在此对象或其父对象中修改$request,则在最初调用它的对象中值不会更改.我还尝试将构造函数定义更改为公共函数__construct(Request& $request...

php – 如何避免手动将我的$注册表容器传递给我所创建的每个新类的构造函数?【代码】

我几个月来一直在做MVC,我将所有内容存储在我的$registry对象中.当我创建一个新类时,我通常只会通过注册表,但是我必须在创建新类时不断传递$this->注册表. 例如class something {public function __construct($registry){$this->registry = registry;$this->db = $registry->db;$this->user = $registry->user; // ......}public function something(){$class = new something_class($this->registry);$class->do();} }class somet...

自PHP 7起,不支持使用弃用的PHP4样式类构造函数【代码】

我正在尝试升级我在SiteGround上托管的WP站点的PHP版本.升级工具显示此错误:33 | WARNING | Use of deprecated PHP4 style class constructor is notsupported since PHP 7这是我在给定位置找到的代码:function gc_XmlBuilder($indent = ' ') {$this->indent = $indent;$this->xml = '<?xml version="1.0" encoding="utf-8"?>'."\n"; }我该如何解决这个问题?解决方法:将功能更改为:function __construct($indent = ' ') {$th...

PHP从构造函数获取返回值【代码】

我很困惑,我有一个带有构造函数的PHP类:class Test {public function __construct() {return "some text";} }然后我实例化了一个对象:$t = new Test();我希望$t的内容是“一些文本”:print_r($t);但它是:Test Object ( )如何从构造函数中获取返回值“some text”?解决方法:您无法从构造函数返回任何内容. new关键字将始终生成一个新对象,从构造函数返回的内容无关紧要.

java – PHP:SoapClient构造函数很慢(需要3分钟)【代码】

我是PHP的新手.经过大量的搜索后,我设法以某种方式使用由Java和PHP创建的Web服务,但问题是SoapClient类的构造函数非常慢.这是我的PHP代码:<? require_once('SOAP/Client.php'); $url = "http://127.0.0.1:8024/_RS?wsdl"; $sc = new SoapClient($url); ?>这有时需要3分钟.我不知道问题是什么.在创建构造函数之后,我可以在1秒内在for循环中使用它50次,所以我很确定构造函数是减慢我的代码的部分. 您认为导致问题的是什么? 先感谢...

php – 如何在我尝试访问静态属性时确保构造函数已执行?【代码】

我有一个用户详细信息的课程.我想从我的应用程序中调用例如UserDetails :: $email,但它是空的,因为它不执行构造函数.我该怎么解决这个问题?<?phpclass UserDetails {public static $email;private $password;public static $role;public static $active;public function __construct() {$auth = Zend_Auth::getInstance();if ($auth->hasIdentity()) {$this->email = $auth->getIdentity()->email;$this->password = $auth->getId...

PHP从构造函数重新抛出异常【代码】

只是想知道这是否是一种常见做法.基本上构造函数正在调用一些失败的初始化函数.我的想法是,将异常重新抛回到创建对象的位置是有意义的,因为这是发送实际输出的地方. 对于这种情况,这是“最佳做法”吗?或者有更标准的方法来做到这一点?<?phpclass a { private $x;private $y;function __construct($filename) {try {$this->x = $this->functionThatMightThrowException($filename);$this->y = $this->doSomethingElseThatMightT...

从php构造函数获取构造参数依赖【代码】

使用php ReflectionClass我可以找到我必须在类构造函数中注入哪些参数来创建新实例.$class = new ReflectionClass($this->someClass); $constructor = $class->getConstructor(); $parameters = $constructor->getParameters();是否还有一种方法可以获得这些参数的依赖关系.所以如果someClass的构造函数看起来像这样:public function __construct(Dependency $dependency){$this->dependency = $dependency; }我可以以某种方式从构...

PHP依赖注入 – 在构造函数中包含类名【代码】

我是OO的新手,但我正在四处阅读并试图学习以“正确”的方式做事.我一直在阅读依赖注入,并且可以理解为什么它是一件好事,但是我对语法并不完全清楚. 例如,在SO上查看这个Basic PHP Object Oriented Instantiation and Dependency Injection问题,我会复制完全相同的代码(如答案所示的更改),然后打印出方法返回的内容:$author = new Author('Mickey', 'Mouse'); print $author->getFirstName();$question = new Question('what day i...

从php扩展调用对象构造函数(__construct)【代码】

我只是在试验PHP扩展,我想知道在扩展中调用对象构造函数的建议/首选方法是什么.我已经读过,通过调用object_init_ex函数,不会自动调用该对象的构造函数.从我所做的测试来看,这似乎也是正确的.我们假设我有以下代码,其中’Person’是有效的类名:zend_class_entry *class_entry = NULL; zend_string *class_name = zend_string_init("Person", sizeof("Person") - 1, false);class_entry = zend_lookup_class(class_name);if (clas...

php – 当父公共公用时,如何使子构造函数私有?【代码】

为什么不能在子类中隐藏构造函数? 我得到以下例外:Fatal error: Access level to CIS\Logger\WPLogger::__construct() mustbe public (as in class Katzgrau\KLogger\Logger) in/builds/r2o/website/wp-content/mu-plugins/toolsets/lib/cis-logger/src/WPLogger.phpon line 12超类代码(来自外部库):public function __construct($logDirectory, $logLevelThreshold = LogLevel::DEBUG, array $options = array()) { // ... }代...

php构造函数【代码】

public function __construct($input = null) {if (empty($input)){return false;}然后有一些构造函数代码…… 我想要做的是,如果我传递一个空变量,该类不会初始化 $classinstance = new myClass();我想$classinstance为空(或假) 我认为这是不可能的,实现类似结果的简单方法是什么?解决方法:你可以将普通的构造函数设为私有(因此不能在对象之外使用它,就像你制作一个Singleton一样)并创建一个Factory Method.class MyClass {priva...

PHP扩展但使用新的构造函数……可能吗?【代码】

我有一节课:class test {function __construct() {print 'hello';}function func_one() {print 'world';} }我想要做的是有一个类扩展测试类.我说’有点’,因为类需要能够运行测试类能够运行的任何函数,但是除非我要求它运行,否则不运行构造.我不想覆盖构造.任何人都知道如何实现这一目标?解决方法: class test {function __construct() {print 'hello';}function func_one() {print 'world';} }class test_2 extends test {funct...

构造函数 - 相关标签