的PHP對象函數我正在使用一個API返回不同的值,我想動態地告訴我的類運行一個具有相同名稱的函數(所以我不需要一個巨大的switch
或者if/else
亂七八糟)。聲明並調用名爲
- 如何聲明對象方法
song.pause
? - 如何使用對象方法
song.pause
? - 這可能是XY Problem,那麼有沒有更好的方法來做到這一點?我想到的一種選擇是始終呼叫
str_replace('.','_',$type)
並設置沒有句點的功能。思考?
例子:
<?php
class MyClass {
...
...
$type = "song.pause"; // This value is returned from another API I can't control
if (property_exists('MyClass', $type)) {
$success = $this->{$type}(); // ???
} else {
header("HTTP/1.1 400 Invalid type: $type);
exit;
}
public function 'song.pause'() { // obviously incorrect :)
???
}
好了,想通之多。謝謝!看起來我必須要有創意。 – 2014-09-02 03:07:53
@d -_- b看看周遊。我會很快更新。 – BlitZ 2014-09-02 03:10:00