草庐IT

libarchive_static

全部标签

父类不能在静态上下文中使用 PHP const/static 变量

出于某种原因(哪个?),子类中定义的PHP常量/静态变量在父类的静态上下文中不可用。为什么?示例1:classModel{functiongetAll(){$query="SELECT*FROM".self::DATABASE_TABLE_NAME;//...}}classPostextendsModel{constDATABASE_TABLE_NAME='post';}$p=Post::getAll();当我运行时,我得到:Fatalerror:Undefinedclassconstant'DATABASE_TABLE_NAME'online3($query=...的行)示例2:cl

php - "static::function()"是什么意思?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:static::staticFunctionName()将关键字static放在函数调用之前意味着什么?代替类名。像这样:static::createKernel();

php - 用PHP学习OO编码,static != 表达式,但是PHP手册上说凡是有值的都是表达式,一头雾水

几天前我开始学习面向对象,我对过程编码还算可以,但显然这还不够,我想成为一个有很多经验和知识的精通编码器,所以首先要完全学习必须是OO,然后是我认为正确的设计模式。无论如何,有一件事我卡住了,我不太明白......静态变量...我知道静态变量不会丢失它的值,即使包含的函数已完成执行,并且如果再次执行相同的函数将保持它的值,等等。但我不明白的是,您现在究竟可以将什么分配给静态变量?关于stackoverflow状态的手册和无数问题您不能将表达式分配给静态变量。所以我阅读了PHP手册,以找出究竟什么才算是表达式?手册答案是(我引用):“在PHP中,您编写的几乎所有内容都是表达式。定义表达式

PHP 5.5 : accessing a static class member of a dynamic class stored in an object

我们假设如下:classa{publicstatic$foo='bar';}classb{public$classname='a';}$b=newb();是否可以通过某种方式(大括号等)直接访问$foo而不会生成“意外的::(T_PAAMAYIM_NEKUDOTAYIM)”:$b->classname::$foo//shouldresultin"bar"notinan"unexpected::(T_PAAMAYIM_NEKUDOTAYIM)"我知道并使用以下解决方法:$c=$b->classname;$c::$foo;但我想知道是否存在另一种直接访问$foo的好方法。

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 - static 关键字对常量有影响吗?

classA{constFOO=1;}classBextendsA{constFOO=5;functionfoo(){printself::FOO;printstatic::FOO;}}$b=newB;$b->foo();两种情况下都打印5。那么在常量上使用static与self没有区别吗? 最佳答案 在LateStaticBinding的上下文中有区别。考虑这段代码:bar();//15如果您运行这段代码,输出将是:15当引用self::FOO时,打印1的值(即使bar()是在类上调用的B,但是当使用static关键字时,后期静态

php - 助手类 : Static or non-static functions

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。当创建一个包含从字符串中去除空格等方法的辅助类时,您是将这些方法创建为static函数还是非static函数?另外,如果静态方法要调用类中的另一个函数do_magic(),该函数应该如何定义为(静态还是非静态?)我们是否必须使用self::?classHelper{publicstaticstrip_whitespace(){//dosomemagicse

php - 错误 :should not be called statically, 假设 $this 来自不兼容的上下文。只在我的机器上

我的团队成员在Controller中静态编写了模型函数调用,例如:$data=ModelName::functionName($param);虽然它应该被动态调用,例如:$model=newModel();$data=$model->functionName($param);大多数情况下,所有调用都是静态进行的。该代码在服务器和除我之外的本地计算机上运行。如果不重写庞大的代码库,静态调用太多无法修复。我总是通过composer更新我的项目。我的php版本是5.4。有人可能知道这是关于什么的吗? 最佳答案 您可能在运行PHP时报告了E

php - 为什么 Eclipse 反对 `static::$var` ?

我在PHP类中有以下静态函数:staticfunction__callStatic($method,$args){$called=NULL;if(empty(static::$collection))static::slurp();if(method_exists(static::$objtype,$method)){foreach(static::$collectionas$obj){$called[]=call_user_func_array(array($obj,$method),$args);}}elseif(property_exists(static::$objtype,$

php - php 中的 static 行为异常,无法接受函数

此代码抛出解析错误,我不明白为什么。functiont(){return'g';}functionl(){static$b=t();return$b;}l();问题是,为什么? 最佳答案 引用手册:Note:Tryingtoassignvaluestothese[static]variableswhicharetheresultofexpressionswillcauseaparseerror.(我的重点)比较http://www.php.net/manual/en/language.variables.scope.php示例#7