1
我正在使用PHP 5.2.6的遺留代碼庫項目工作。這個項目的一部分涉及類似於使用一個PHP類與另一個PHP類的A/B測試。這兩個類具有許多相同的函數名稱,簽名非常相似,但方法中的方法不同。我想知道是否可以使用基於動態/基於變量的類名來調用類中的靜態方法。PHP:調用類靜態方法與動態類名稱前PHP 5.3
例如,ID喜歡設置類的名稱,例如:
$class = isset($some_condition) && $some_condition ? 'NewClassName' : 'LegacyClassName';
...然後調用函數的這樣:
$class::myStaticFunction();
林意識到,這可以通過call_user_func來完成(),但我無法找到替代方法(如果有的話)。我只是不想用正則表達式用call_user_func()語句替換所有對傳統類的調用。
例如,
$stuff = call_user_func($class . '::myStaticFunction()');
...做的工作就好了。
有誰知道是否有更簡單的方式來表達:$ dynamicClassName :: staticFunction()與PHP 5.2?也許我缺少一些與我的語法等
你可以升級你的PHP版本。從5.3開始,您可以使用他們想要調用函數的方式。 5.2 –
沒有別的辦法我擔心的答案!雖然這就是我喜歡做的事情,但不幸的是,目前這不是一種選擇。隨意回答這些評論,我可以接受。 – Todd