草庐IT

self-referencing

全部标签

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 - 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

php - 运行 phpcs 时,错误 : Referenced sniff "PHPCompatibility" does not exist is coming

我想运行phpcs工具,但是这个错误来了,错误:引用的嗅探“PHPCompatibility”不存在我运行了phpcs-i。这给了我,安装的编码标准是PEAR、PSR1、Zend、Squiz、PSR12、PSR2、MySource和PHPCompatibility。但总是会出现这个错误,错误:引用的嗅探“PHPCompatibility”不存在。有什么原因吗? 最佳答案 根据当前PHPCompatibilityCodingStandard执行此步骤所需的文档:打开您的composer.json文件并将以下行添加到:"require-

java - 获取以下构建错误 : "the type {---} cannot be resolved. it is indirectly referenced from required .class files"

因此,我在Eclipse(Java)中进行了以下设置:我有一个项目(我们称之为“项目1”),它提供了一个接口(interface)(包私有(private))我有另一个项目(“项目2”),其中包含项目1的包...此包中的类扩展了“项目1”中的包私有(private)接口(interface),并提供了一个很好的公共(public)接口(interface)。现在,我有引用“项目2”的“项目3”。项目3然后使用项目2中提供的公共(public)对象。在项目3中调用项目2的构造函数后,我得到以下信息:“无法解析类型{---}。它是从所需的.class文件中间接引用的”如果我从项目3添加对项

java - self 比较接口(interface)在集合类中做什么?

在练习反射时,我开始了解Collections类中的SelfComparableInterfaceinterfacejava.util.Collections$SelfComparable这个接口(interface)有什么用? 最佳答案 它什么都不做。它是私有(private)的,因此您无法导入它。真的是注释说类型是“SelfComparable”,实际上并没有使用。没有实现这个接口(interface)。使用它的代码依赖于它将在运行时被丢弃的事实。publicstaticTmax(Collectioncoll,Comparato

Java 静态 vs Ruby 的 self

Java中的static是否像Ruby中的self? 最佳答案 没有。Java的static和Ruby的self完全没有任何关系。与Ruby的self等效的Java是this。与Java的static等效的Ruby不存在。Java的static意味着该方法是静态分派(dispatch)的,而不是动态分派(dispatch)的。在Ruby中,方法总是是动态分配的。static表示该方法未在任何对象上调用。在Ruby中,方法总是在对象上调用。由于Java中的static方法不与任何对象相关联,因此它们无权访问任何对象状态。在Ruby中,

Java:同一个类中的静态方法调用的 self

是否可以在PHP中执行类似self::的操作而无需指定类名以在同一类中调用静态方法。看看我是怎么做到的:publicclassFoopublicstaticvoidblaa(){...}publicvoidfoobar{Foo.blaa();}但我想这样publicclassFoopublicstaticvoidblaa(){...}publicvoidfoobar{_SOME_SORT_OF_SELF_.blaa();}不必一遍又一遍地写下类名...静态属性也是如此。可以通过_SOME_SORT_OF_SELF_.MY_ATTR访问它,而不是使用Foo.MY_ATTR。可能吗?谢谢