classme{private$name;publicfunction__construct($name){$this->name=$name;}publicfunctionwork(){return"Youareworkingas".$this->name;}publicstaticfunctionwork(){return"Youareworkinganonymously";}}$new=newme();me::work();fatalerror:无法重新声明me::work()问题是,为什么php不允许像这样重新声明。有什么解决方法吗? 最佳答案
这个问题在这里已经有了答案:HowcanIgetalistofstaticvariablesinaclass?(2个答案)关闭8年前。在PHP中,如果我有一个带有静态成员变量的类,比如:classFoo{publicstatic$a=0;publicstatic$b=1;}...我有一个包含类名的字符串变量:$foo='Foo';...如何使用变量$foo遍历类Foo的静态数据成员?类似于://Doesnotworkforeach($fooAS$field=>&$value){//Desired://Iteration1:$field='a',$value=0//Iteration2:
在Java中,我读到,staticfunction只能访问staticfunction或staticvariable。我试图找出在PHP和java中使用静态的区别。PHP中是否也有同样的情况?我们可以在PHP中调用静态函数内部的非静态函数吗? 最佳答案 Canwecallnon-staticfunctioninsidethestaticfunction,inPHP?是但不建议。因为$this关键字在静态上下文中不可用。但是,您可以使用static/self关键字来做到这一点,但这会导致严格标准通知Strictstandards:No
我尝试将一个函数存储在一个数组中,但它一直给我这个错误:unexpected'function'(T_FUNCTION)我在互联网上四处查看,但他们大多说我应该使用php5.3及更高版本,而我使用的是5.6.21。这是我的数组:static$Events=array('ViewPage'=>array('properties'=>array('previous_event','number_view_page',),'trigger'=>function($foo){return$foo;},),);如果有人知道问题是什么以及如何解决,请帮助我:) 最佳答案
我注意到对于创建外观类,laravel只提供名称“db”framework/src/Illuminate/Support/Facades/DB.phpclassDBextendsFacade{/***Gettheregisterednameofthecomponent.**@returnstring*/protectedstaticfunctiongetFacadeAccessor(){return'db';}}我深入了解并发现此方法使用提供的名称framework/src/Illuminate/Support/Facades/Facade.phpprotectedstaticfunc
首先我想说的是,这不是一个容易解释的问题,所以如果看起来令人困惑,请耐心等待。我有一组这样的类classProduct{publicstatic$static_type='product';publicstatic$static_table='product_table';publicfunction__construct($params){//dosome}}然后是新闻、事件等类我需要从另一个类以迭代方式访问这些类中的那些静态变量。像这样的东西://...if(Product::$static_type){//dosome}elseif(News::$static_type){//d
我有一个定义为final的类。将方法也定义为final是否有意义?我知道由于该类本身是最终的,因此无法扩展,这会使方法最终声明变得多余,但我想编写有关该类和其他类的文档,并认为自final属性以来它会有所帮助方法就在那里,所以你马上就会知道。我在PEAR的编码标准中找不到任何关于此的内容。 最佳答案 如果您将一个类定义为final,则该类不能再被扩展,但如果您将任何方法定义为final,则这些方法不能被重写或扩展以添加更多功能。因此,如果类本身是final,则没有必要将方法定义为final。更多信息:PHP'sfinalKeywor
我在具有静态功能的自定义Magento模型中有一个自定义模型:classABC_Module_Model_ClassName{staticpublicfunctionsend($something){//dosomethingstatic}}现在我这样调用这个函数:ABC_Module_Model_ClassName::send($something);//worksandisnothingwrongwithit更多的是出于一致性的目的,我想知道Mage是否有调用静态方法的内部方式,像这样:Mage::getModel('abc/module_className')::send($so
在过去的30分钟里,我用谷歌搜索没有找到任何解决方案。我什至搜索了“php.ini”,我得到的只是我当前安装joomla的整个localhost/htdocts/mysites目录中的ini.php文件。我在joomla论坛上找到的最新答案是在2011年7月,但我找不到人们所说的php.ini文件。我什至尝试在删除安装目录之前检查安装目录并打开隐藏文件,但都没有成功。我必须更改设置以停止在安装后立即收到如下不必要的php错误消息:StrictStandards:StaticfunctionJDatabase::test()shouldnotbeabstractinC:\xampp\ht
有没有什么方法可以不使用类前缀来访问PHP类的静态变量?例子:classA{protectedstatic$x="blahblah";publicstaticfunctionp(){print(A::$x);//我明白,那时$x可能是一个未初始化的局部变量,但是能够说/声明/设置在这些情况下解释器应该将$x解析为声明的成员是很有意义的更早。恕我直言,到处输入类前缀是一个重大失败。 最佳答案 如果您使用它的方法在同一个类中,您可以使用self::或static::。例如:classA{protectedstatic$x="blahbl