草庐IT

fnon-call-exceptions

全部标签

PHP:从父级调用静态方法时出现 "Call to undefined method"错误

如果两者都是静态的,从父类调用子类方法的正确方法是什么?当我使用静态类时它返回错误“调用未定义的方法A::multi()”,但是当我使用非静态方法时没有问题,例如://--------------STATIC------------------classA{publicstaticfunctioncalc($a,$b){returnself::multi($a,$b);}}classBextendsA{publicstaticfunctionmulti($a,$b){return$a*$b;}}echoB::calc(3,4);//ERROR!!//--------------NON-

php - 魔术方法 __call() 参数作为 "real"参数

我正在寻找有关如何使用参数列表动态实例化类的解决方案。例如:classtest{publicfunction__call($name,$args){/*blah,blahclassexists?require*/returnnew$name($args);}publicfunction__toString(){return(string)$this->extension();//toenforce__toStringofextension}}classextensionextendstest{publicfunction__construct(classTypeHint$object,

php - 方法上的 call_user_func

有什么区别:$callback=array(&$this,'method');$callback[0]->$callback[1]($args);和call_user_func(array(&$this,'method'),$args);? 最佳答案 不,调用变量方法/函数和使用call_user_func没有区别。我还没有遇到需要后者的情况。顺便说一句,您不需要通过引用传递$this;所有对象都自动通过引用传递。 关于php-方法上的call_user_func,我们在StackOve

php - 为什么 PHP 更喜欢 __call() 而不是 __callStatic()?

当我尝试这个时:bar();我期待这样的输出:from__callStatic...相反,它给出:from__call。有人能解释一下为什么吗?编辑:确切地说,我想知道为什么如果我删除__call函数,那么它会触发__callStatic并且是否有办法当声明__call时触发__callStatic。 最佳答案 这里发生了两件事,首先:PHP支持classname::method作为parent::method的别名,以及跳过树中某些类的方法asdemonstratedhere.其次,parent::不是静态调用,使用parent:

PHP Uncaught exception 提供了比捕获的异常更多的细节

我构建了一些api端点,并尝试处理日志记录异常,因此我故意删除数据库并运行端点以获取PDOException。我的问题是,如果我没有捕获异常,当我通过postman运行端点时,它会向我显示更详细的消息、堆栈跟踪等(大约1000行),但是如果我用这样的trycatchblock捕获异常catch(\Exception$exception){print_r($exception->__toString());print_r("\n\n");die;}细节少了很多。这是为什么?无论如何打印我们没有捕获到异常时得到的相同数据? 最佳答案 您

php - 消息 : Call to a member function get_users() on a non-object

嗨,我正在使用codeigniter,对此我还很陌生。我正在做一个简单的程序来显示数据库中的数据。但我有错误!这是我的代码Controller文件用户.phpclassUserextendsCI_Controller{publicfunctionshow(){$result=$this->user_model->get_users();foreach($resultas$object){echo$object->id;}}}?>模型文件用户模型.phpclassUser_modelextendsCI_Model{publicfunctionget_users(){$fetch=$thi

php - 在 Node.js 中模仿 PHP 的 __get(), __set() & __call() 魔术方法

我想知道是否有一种方法可以在Node.js中模仿PHP的魔术方法__get()和__set()。来自这个问题:JavaScriptgetterforallproperties我知道你可以在Rhino中完成,但Node是基于V8构建的。V8有办法做到这一点吗? 最佳答案 我相信你运气不好,至少asofMarch2010.至少你有__defineGetter__和__defineSetter__,虽然我意识到这不是一回事。总的来说,我认为使用__noSuchMethod__/__get/method_missing不好,因为它使代码更难

php - 使用 __call() 在重载函数中使用引用

classa{publicfunctionf(&$ref1,&$ref2){$ref1='foo';$ref2='bar';}}classb{publicfunction__call($methodName,$arguments){$a=newa();call_user_func_array(array($a,$methodName),$arguments);}}$ref1='X';$ref2='Y';$b=newb();$b->f($ref1,$ref2);var_dump($ref1,$ref2);这导致:PHPWarning:Parameter1toa::f()expectedt

php - 请求。错误 : Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET/"

我已经安装了Symfony2,修复了文件权限后,我可以通过将浏览器指向以下地址来访问开发环境:http://localhost/app_dev.php但是,当我尝试通过将浏览器指向http://localhost来访问生产环境时,出现以下异常(来自app/logs/prod.log):[2012-08-1311:30:03]request.ERROR:Symfony\Component\HttpKernel\Exception\NotFoundHttpException:Noroutefoundfor"GET/"(uncaughtexception)at/path/to/framewo

php - fatal error : Uncaught SoapFault exception: [soap:Client]

你好我的支付网关有问题,当网关中的工作完成并通过下面的编码返回到这个文件时.title{height:30px;}input{font-family:tahoma;}';//echo$this->package['cost'].'--'.$AppConfig['plus']['packages'][0]['cost'];//echo$st[1];//echo$AppConfig['plus']['payments']['paypal']['merchant_id'];if(isset($_POST['status'])&&$_POST['status']==100){$Resnumbe