草庐IT

Construct

全部标签

php - 使用 php 在 __construct 中调用函数

一个我找不到答案的简单PHP问题。是否可以从“__construct()”调用函数?例如,如果我使用My_Controller解决方案here.如果我在下面添加自己的函数,比如我有更高级的身份验证,我可以从构造中调用它吗? 最佳答案 是的,使用格式$this->myNewFunction(); 关于php-使用php在__construct中调用函数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

PHP: "Declaration of ... should be compatible with that of ..."

我想为可CRUD(可以保存和删除)的实体创建一个接口(interface)。这是我的抽象类:abstractclassAbstractCrudableEntityextendsAbstractEntity{abstractpublicfunctiondoSave();abstractpublicfunctiondoDelete();}我的实现类需要这些方法的几个额外参数。这是实现类的签名:classContactextendsAbstractCrudableEntity{publicfunctiondoSave(User$user,\UberClientManager$manager)

php - 混淆何时在 php 中从子类实例化父类

我正在创建一个网站,但为了进一步提高我的编码技能,我正在尝试利用OOP的力量来完成它。我正在使用类来验证表单输入,所以我想我会有一个“父”验证类,然后是每个提交的表单的子类(即登录类、注册类等),它们会负责将将正确的值存入数据库等。我看到的代码中,父对象是从子对象的构造函数中构造出来的。但是,我还没有这样做,但我的类(class)似乎仍然有效?有人能给我解释一下为什么我们要从子进程调用父构造函数吗?另外,我的代码是否只是因为我的parent有“公共(public)”功能(方法)才起作用?(这可能是一个问题)吗?我的代码(为清晰起见的删节版)如下:classValidation_Clas

php - 未捕获的异常 'Exception' 消息为“DateTime::__construct():

我在输出在我的PHP文件中创建的日期时遇到问题。我一直在关注如何制作一个真正的Basic-CMS平台的教程,以帮助我了解databases和PHP的一些基础知识,一切都已经完成一切顺利,直到我尝试输出页面的创建日期。这是我得到的错误Fatalerror:Uncaughtexception'Exception'withmessage'DateTime::__construct():Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_defa

php - 拉维尔 5.4 : Get logged in user id inside __construct()

我试图在构造函数中访问Auth::user()->id;但它总是返回错误Tryingtogetpropertyofnon-object。我在laravel文档中研究了Session在构造函数内部不可访问,并且还在SO上搜索了这个。我需要在构造函数中登录用户ID,因为我必须从数据库中获取数据并使其可用于所有方法。我当前的代码是:publicfunction__construct(){$this->middleware('auth');$induction_status=TrainingStatusRecord::where('user_id',Auth::user()->id)->whe

php - 单例模式实现错误

我正在尝试实现单例模式,但出现以下错误Fatalerror:AccessleveltoDatabase::__construct()mustbepublic(asinclassPDO)in/config/database.phponline29 最佳答案 通过像privatefunction__construct()一样将__construct()函数声明为私有(private)函数,您实际上禁止PHP在创建对象时自动调用它。相反,您应该始终将__construct()以及其他魔术方法声明为公共(public)。publicfunc

PHP:在构造函数中使用 $this

我想在php中使用这种语法。它说明了创建对象有不同的回退方式function__construct(){if(some_case())$this=method1();else$this=method2();}这是一场噩梦吗?还是有效? 最佳答案 Oritworks?这是行不通的。您不能取消设置或从根本上改变在构造函数中创建的对象。您也可以不设置返回值。您所能做的就是设置对象的属性。解决这个问题的一种方法是有一个单独的“工厂”类或函数,它检查条件并返回正确对象的新实例,如下所示:functionfactory(){if(some_ca

php - 未在扩展的 PHP DOMElement 上调用构造函数

在PHP中扩展DOMElement时,不会调用子类的构造函数。就预期行为而言,文档中没有任何内容向我发出警告,但也许我遗漏了一些东西。这是一个简单的测试用例....classSillyTestClassextendsDOMElement{public$foo=null;publicfunction__construct($name,$value=null,$namespace=null){echo"callingcustomconstruct....";$this->foo="bar";parent::__construct($name,$value,$namespace);}publ

phpunit 从不抛出 "Argument #3 (No Value) of PHPUnit_TextUI_ResultPrinter::__construct() must be a value from "", "auto"或 "always""

我只是在测试Php单元。这是我的DependencyFailureTest类:require_once'../vendor/autoload.php';usePHPUnit\Framework\TestCase;classDependencyFailureTestextends\PHPUnit\Framework\TestCase{publicfunctiontestOne(){$this->assertTrue(false);}/***@dependstestOne*/publicfunctiontestTwo(){}}但是在运行命令phpunit--verboseDependenc

php - 可捕获的 fatal error :传递给“...\FormType::__construct() 的参数 1 必须实现接口(interface)

我正在尝试在formType中调用entityManager。我不明白为什么这不起作用。表单类型:private$manager;publicfunction__construct(ObjectManager$manager){$this->manager=$manager;}Controller:$form=$this->createForm(ProductsType::class,$products);服务:apx.form.type.product:class:ApxDev\UsersBundle\Form\ProductTypearguments:["@doctrine.orm