本文介绍了调用类方法(使用构造函数)在php中没有对象实例化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Ive看了看,试过,但我找不到答案。
Ive looked and tried but I can't find an answer.
在PHP中,是否可以调用类的成员函数(当该类需要一个构造函数来接收参数时)而不将其实例化为一个对象?
In PHP, is it possible to call a class' member function (when that class requires a constructor to receive parameters) without instantiating it as an object?
代码示例(给出错误):
A code example (which gives errors):
<?php class Test { private $end=""; function __construct($value) { $this->end=$value; } public function alert($value) { echo $value." ".$this->end; } } //this works: $example=new Test("world"); $example->alert("hello"); //this does not work: echo Test("world")::alert("hello"); ?>推荐答案
不幸的是PHP不支持这样做,但你是一个有创意的人:D
Unfortunately PHP doesn't have support to do this, but you are a creative and look guy :D
你可以使用工厂,样例:
You can use an "factory", sample:
<?php class Foo { private $__aaa = null; public function __construct($aaa) { $this->__aaa = $aaa; } public static function factory($aaa) { return new Foo($aaa); } public function doX() { return $this->__aaa * 2; } } Foo::factory(10)->doX(); // outputs 20更多推荐
调用类方法(使用构造函数)在php中没有对象实例化
发布评论