Heim > Backend-Entwicklung > PHP-Tutorial > 自定义函数名

自定义函数名

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-23 13:52:30
Original
1028 Leute haben es durchsucht

请问一下,PHP是否支持自定义函数在声明时,函数名称采用变量形式,如何使用?
我试过用
function $a{}
$a = 'test';
test();
?>
提示错误。


回复讨论(解决方案)

你那样是不行的
我这样是可以的

function test() {}$a = 'test';$a();
Nach dem Login kopieren
Nach dem Login kopieren

你那样是不行的
我这样是可以的

function test() {}$a = 'test';$a();
Nach dem Login kopieren
Nach dem Login kopieren



问题是我不是想要这样的效果啊……

我碰到的情况是,可能函数名称不一样,但函数的内容是一样的,但又因为特殊原因
在函数声明时,函数名称未知,只有等到实际调用时,才能确定下来。

你可以通过类来实现(__call)

1.使用eval

$a = 'test';eval("function $a(){ echo 'function name is:'.__FUNCTION__;}");test();
Nach dem Login kopieren


2.使用class 的魔术方法__call
class foo{    public function __call($name, $param){        if($name=='test'){            echo 'test';        }else{            echo 'name not exists';        }    }}$obj = new foo();$a = 'test';$obj->$a();
Nach dem Login kopieren

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage