草庐IT

构造器

全部标签

php - 从它自己的方法调用 PHP 构造函数

我一直在寻找一种方法来调用类似于“parent::_construct”的类的构造函数,但对于类本身(类似于“self::_construct”,虽然那行不通)。为什么要这样做?考虑以下(这不起作用,顺便说一句)...classA{var$name;function__construct($name){$this->name=$name;}functiongetClone($name){$newObj=self::__construct($name);return$newObj;}}classBextendsA{}在实际实现中,还有其他属性可以区分B类和A类,但两者都应具有“getCl

php - 使用 include()、include_once() 和 require() 构造的实际场景

在include、include_once、require和require_once中,我总是只使用require_once。许多第三方框架也只使用require_once。谁能描述一个必须使用另一个结构的真实场景? 最佳答案 恕我直言,没有适合include和include_once的真实场景,原因有二:您不太可能打算包含一个文件,同时您并不真正关心它是否被包含(例如,如果文件不存在并且执行继续)。即使是这种情况,include也会发出警告,这是一种糟糕的风格(零警告代码是值得努力的好事)。大多数情况下,您可以使用is_file之

php - 我应该在构造函数中实例化其他类吗?

最近,我看到我的一位同事在构造函数中实例化他的类,所以我开始做同样的事情,就像这样:classFooBar{private$model1;private$model2;publicfunction__construct(){$this->model1=newModel1();$this->model2=newModel2();}}现在我开始怀疑,在需要的地方实例化模型是否可能更好?例如,函数foo()需要model1,函数bar()需要model2,但现在两个模型都已加载。那么,问题是:这是实例化其他类的正确方法吗?或者我应该在函数中需要它们时才实例化它们吗?

php - 是否可以在 PHP 中链式重载构造函数?

这是一个虚构的例子,当有很多参数时它会变得更有用。这会让调用者使用newPerson("Jim",1950,10,2)或newPerson("Jim",datetimeobj)。我知道可选参数,这不是我在这里寻找的。在C#中我可以这样做:publicPerson(stringname,intbirthyear,intbirthmonth,intbirthday):this(name,newDateTime(birthyear,birthmonth,birthday)){}publicPerson(stringname,DateTimebirthdate){this.name=name;

php - 告诉 PHP 类在扩展时始终运行它的构造函数

据我了解,当扩展PHP类时,不会调用它的构造函数?所以在下面,方法Options_Page_Template->on_enqueue_scripts()从未实际运行-classOptions_Page_Template{function__construct(){/**Enqueuescripsandstylesforuseinthisplugin*/add_action('wp_enqueue_scripts',array(&$this,'on_enqueue_scripts'));}functionon_enqueue_scripts(){{doWhateverhere}}}cla

php - 从 ZEND framework 2 Controller 的构造函数重定向

我想在我的ZF2Controller的构造函数中检查userid,如果它没有定义,那么我想重定向到任何外部URL或我的其他Controller尝试过:$this->redirect()->toRoute("campaign");和$this->redirect()->toUrl("http://example.com");两种方法都给我相同的错误信息:Urlpluginrequiresthatcontrollereventcomposearouter;nonefound 最佳答案 ServiceLocator不存在于Controll

php - 为什么在构造函数初始化此属性时声明类的属性

写下什么是最好的,为什么?classChat{private$_couleur;private$_race;function__construct($couleur,$race){$this->_couleur=$couleur;$this->_race="$race";}publicfunctiongetCouleur(){return$this->_couleur;}}或者classChat{function__construct($couleur,$race){$this->_couleur=$couleur;$this->_race="$race";}publicfunctio

php - PDO - FETCH_CLASS - 将结果作为参数传递给构造函数

有什么方法可以将PDO的结果作为构造函数的参数传递吗?比方说,我有以下类(class):classTest{private$value1;private$value2;function__construct($val1,$val2){$this->value1=$val1;$this->value2=$val2;}}然后,通过PDO驱动程序,我从数据库中选择一些数据,比方说:SELECTprice,quantityFROMstock$results=$query->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,"Test");现在,PD

PHP7 - nusoap - nusoap_client 有一个弃用的构造函数

我想在Laravel5.3和PHP7上使用nusoap。但是当我尝试使用那个包中的composer安装它时:https://github.com/codecasts/nusoap-php7(v.0.9.6)它仍然返回我:ErrorExceptioninclass.soapclient.phpline26:MethodswiththesamenameastheirclasswillnotbeconstructorsinafutureversionofPHP;nusoap_clienthasadeprecatedconstructor我会清除缓存,但都没有成功。有没有人用PHP7在Lara

php - 如何在 PHP 单元测试中模拟在构造函数中调用的方法?

我在对具有在构造函数中调用的方法的类进行单元测试时遇到问题。我不明白如何mock这个。也许我应该使用phpUnit的“setUp”方法?我正在使用Mockery库。还有比这更好的工具吗?classToTest{function__construct(){$this->methodToMock();//needtomockthatforfuturetests}//mymethodsclass}如有任何建议,我们将不胜感激。 最佳答案 如果您的类难以实例化以进行测试,则说明您的类在构造函数中做了太多工作或正在做一些工作。http://m