草庐IT

magic-methods

全部标签

javascript - jquery ajax 调用 "metho"而不是 "method"?

我有一个script.js,它使用jQuery的ajax函数将字符串查询到php文件,它按预期工作但我发现奇怪的是我必须使用“方法”语法而不是“方法”,看看这个,这行得通script.js$.ajax({url:'php/printers.php',metho:'POST',data:{data:c,orderby:d,},success:function(output){$('.results').html(output);vartbody=document.getElementsByClassName('results');varrows=tbody[0].getElementsB

PHPUnit 错误 fatal error :调用未定义的方法 Mock_Game_073a8e20::method()

我目前正在观看使用PHPUnit的指南,当涉及模拟时,我总是会收到此错误。游戏类classGame{protected$title;protected$imagePath;protected$ratings;publicfunctiongetAverageScore(){$ratings=$this->getRatings();$numRatings=count($ratings);$total=0;if($numRatings==0){returnnull;}foreach($ratingsas$rating){$total=$rating->getScore();}return$t

php - __get() 和 __set() 的最佳实践

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。源于此question关于使用__get()和__set()访问私有(private)变量,我想了解一下它们的一般使用方式。我想知道何时何地是使用重载函数的最佳时机,以及您在哪里使用过重载函数(如果有的话)。为了清楚起见,我们正在谈论这些功能:http://us2.php.net/manual/en/language.oop5.magic.php

php: 在某些情况下避免使用 __get?

我有一个类,我正在使用__set。因为我不希望它设置任何东西,所以我有一组已批准的变量,它会在实际设置类属性之前检查这些变量。但是,在构建时,我希望__construct方法设置几个类属性,其中一些不在批准列表中。因此,当构造发生时,我执行$this->var=$value,我当然会得到我不允许设置该变量的异常。我能以某种方式解决这个问题吗? 最佳答案 声明类成员:classBlah{private$imAllowedToExist;//noexceptionthrownbecause__set()wontbecalled}

php - 是否可以在 PHP 中实现类似数组的对象?

我想实现一个行为类似于数组的对象。应该这样使用:$var=newCustomCollection(retrieveFromWebService());echo$var[0];//legal$var[0]='a';//illegal可以使用魔术方法或其他机制在PHP中完成吗? 最佳答案 您的CustomCollection类需要实现内置的ArrayAccessinterface.另请参阅:http://code.google.com/p/phpraise/source/browse/trunk/phpraise/core/collec

php - 如果存在则调用子类的 __call 方法,如果不存在则抛出异常

[edit]更新了标题以更准确地反射(reflect)问题我要解决的问题是:我需要知道是否通过parent::调用了一个方法,虽然我可以使用debug_backtrace,但它似乎在那里一定是执行此操作的更好方法。我一直在研究后期静态绑定(bind),但也许我对它的理解不够深入,无法找到解决方案。有问题的方法是__call,所以我不能简单地传入一个额外的参数,因为它的错误是多于或少于恰好两个。试图解决这个问题的原因是父类有__call但子类可能有也可能没有_call。如果child没有,并且parent没有派发电话,那么我想抛出异常或错误。如果child确实有该方法,那么我将返回fal

php - phpDoc @method 签名中的可选参数

有没有办法在phpDoc中将@method签名中的参数标记为可选?像这样:/**@methodboolalloc()alloc(int$filesize[,string&$result])Allocatesspaceforafiletobeuploaded*/ 最佳答案 通常,phpDocumentor通过查看方法签名中参数的默认值来识别可选参数。因此,使用您的示例:@methodboolalloc()alloc(int$filesize,string&$result='')Allocatesspacefor...

当在类中定义魔术方法 __get 和 __set 时,PHP 函数 Empty 不起作用

目前我在YII框架中工作,我在其中创建了一个扩展CFormModel的类,在该类中,我覆盖了以下函数:publicfunction__get($name)publicfunction__set($name,$value)我已进行以下检查以确保end_date和start_date不为空if(!empty($this->end_date)AND!empty($this->start_date)){**/*NotWorking*/**/*SomeApplicationLogic*/}但是它不能正常工作并且条件不满足。当我调试代码时,我开始知道$this->start_date和$this-

php - 如何在 PHP 中完成 __constructor 后自动调用方法?

我写了一个叫做Task的小抽象类。我喜欢让每个任务逻辑的类来扩展它。在我的抽象类“任务”中,我喜欢调用在每个类中定义的已用定义方法“执行”。我尝试使用魔术方法__call但它不起作用。如果您在我的方法中注意到我正在回显一条永远不会打印在屏幕上的消息。这是我的抽象任务类这是一个逻辑类surveyId=intval($surveyId);$this->callId=intval($callId);}/***Resumeexistinginterviewifoneexistsusingthegiving$surveyIdand$callId**@returnvoid*/protectedfu

PHP 7.2.7 : Attempted to call an undefined method named "setEncryptionName" of class "ZipArchive"

我正在尝试使用PHP7.2.7创建一个加密的、受密码保护的ZIP文件。但是,我收到以下错误消息:Attemptedtocallanundefinedmethodnamed"setEncryptionName"ofclass"ZipArchive".http://php.net/manual/en/ziparchive.setencryptionname.php如果我删除$zip->setEncryptionName()那么一切都会100%,除了ZIP文件没有密码保护。我在Google和论坛上进行了搜索,但找不到遇到过类似问题的人,可能是因为PHP版本和功能仍然太新。