草庐IT

继承类上的 PHP new self() 正在创建基类对象

这个问题在这里已经有了答案:Newselfvs.newstatic(3个答案)关闭6年前。我有一个类作为基类。然后我有几个继承自它的其他类。我想使用静态语法开始加载继承的类,但这种行为没有多大意义。直到现在,我都是这样加载类的,它完成了工作。$obj=newfoo();$something=$obj->ByID(1);我希望能够像这样调用ByID函数。$something=foo::Get()->ByID(1);上面的代码是有效的,但它不是调用继承类,而是加载基类。我想我明白为什么会这样,但这没有任何意义。在.NET中,“this”将始终应用于继承的对象,但在我这里它不是这样工作的。我

PHP_SELF 返回/index.php/index.php

为什么$_SERVER['PHP_SELF']返回/index.php/index.php??请求http://example.com输出/index.php/index.php索引.phpnginx.confserver{listen80;server_namedomain.com;root/var/www/public/www;#Addtrailingslashrewrite^([^.\?]*[^/])$$1/permanent;location/{try_files$uri$uri//index.php?$query_string;}location~\.php${include

php - 引用 const 变量时 $this 或 self 或 static 哪个最好?

我了解到static比self好,因为self进行后期静态绑定(bind)。但我想知道哪种方法最适合引用const变量。classBlack{constcolor='black';publicfunctionbyThis(){return$this::color;}publicfunctionbySelf(){returnself::color;}publicfunctionbyStatic(){returnstatic::color;}}我检查了所有三个getter都工作正常。哪个是最好的选择?(我使用的是PHP7.0) 最佳答案

php - 为什么无法在 PHP 中返回 self ?

在PHP中不可能returnself链接静态方法。这限制了静态方法的使用,因为链接非常有用,您必须使用实例来链接方法。PHP开发人员决定不允许返回self有什么原因吗?或者一般来说在OOP中是不可能返回self的? 最佳答案 尝试returnnewstatic()或returnnewself():classCalculator{privatestatic$_var=0;publicstaticfunctionstartFrom($var){self::$_var=$var;returnnewstatic();}publicstati

php - 在表单和链接中使用 $_SERVER ['REQUEST_URI' ] 或 $_SERVER ['PHP_SELF' ] 的风险

使用$_SERVER['REQUEST_URI']或$_SERVER['PHP_SELF']作为表单中的操作或作为href链接?如果是这样,可以采取哪些措施来降低风险? 最佳答案 您在www.example.com/form.php上创建了一个表单。一年后,您会忘记URL只是抓取页面加载的任何URL。假设您在某个时候在您的框架中添加了一个“删除所有内容”全局选项,作为一个完全不同(有点奇怪)请求的一部分。现在,有人向您发送此链接:www.example.com/form.php?delete_everything=true。因为您只

php - 特质; PHP 5.4 中的 parent 和 self 类型提示

虽然这个问题有点与语言无关(就支持Traits的OOP语言而言)我一直在修补PHP5.4a的夜间构建,并遇到了一个奇怪的场景。我似乎无法再运行我的安装,但那是另一回事了。给定以下代码段:traitMyTrait{publicfunctionmyMethod(self$object){var_dump($object);}}classMyClass{useMyTrait;}$myObject=newMyClass();$myObject->myMethod('foobar');//应该发生什么?我希望出现错误,指示$object需要是MyClass的实例。当trait方法被复制到一个us

php - XPath递归删除空的DOM节点?

我正试图找到一种方法来清理来自如下html源的一堆空dom元素: good但是,我不想伤害有效元素或换行符。结果应该是这样的:good到目前为止,我试过一些类似这样的解释:$xpath=newDOMXPath($dom);//$x='//*[not(*)andnot(normalize-space(.))]';//$x='//*[not(text()ornode()orself::br)]';//$x='not(normalize-space(.)orself::br)';$x='//*[not(text()ornode()orself::br)]';while(($node

Python FreeCAD.Vector方法代码示例

PythonFreeCAD.Vector方法代码示例本文整理汇总了Python中FreeCAD.Vector方法的典型用法代码示例。如果您正苦于以下问题:PythonFreeCAD.Vector方法的具体用法?PythonFreeCAD.Vector怎么用?PythonFreeCAD.Vector使用的例子?那么恭喜您,这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FreeCAD的用法示例。在下文中一共展示了FreeCAD.Vector方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Py

php - C++ 与 PHP - 面向对象的问题 :

我最近一直在使用PHP,虽然我发现来自C++/C#/python等的语言非常简单,但当涉及到它的OO表示时,我遇到了一些奇怪的差异(也许)。如果有人能回答几个简短的问题,我将不胜感激:)构造函数可以在PHP中返回结果值吗?当类中的成员函数调用类中的另一个成员函数时一个类,我必须使用self::作用域还是只是一个提示?为什么会有self::和$this->,有什么区别?是否需要删除用new创建的对象,或者将超出范围删除它?我不确定它是否真正动态,或者如果有像C#中那样的垃圾收集。我知道问题有点简单,而且我一直看到使用所有这些东西的代码-但我还没有看到足够具体的东西,而且我家里也没有一本好

php - fatal error : Class 'SELF' not found

我有以下相关代码:try{self::$db=newPDO($dsn,self::USER,SELF::PASS);//Connecttothedatabase,andstorethepdoobject.self::$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException$e){thrownewException("Therehavebeenanerrorintheconnection:".$e->getMessage());}执行此代码所在的静态函数时,出现以下错误:Fatalerr