1

このコードをPHP5.2互換に変換する方法を知っている人はいますか?

$myClass = 'ValidClassName';
$instance = $myClass::factory(array('arg' => 'value));

私はPHP5.3で知っています

PHP 5.3.0以降、変数を使用してクラスを参照することが可能です。変数の値をキーワードにすることはできません(たとえば、self、parent、static)。

そして気づかずに使っていました。次に、Php 5.2環境で、エラーが発生します

解析エラー:構文エラー、予期しないT_PAAMAYIM_NEKUDOTAYIM

だから私はそのコードを少なくとも5.2の下位互換性のあるものに変換する方法を見つけようとしています。

4

2 に答える 2

6

矢印でクラス関数を参照するだけです。

$className = 'ValidClassName';

$myClass = new $className();

$instance = $myClass -> factory(array('arg' => 'value));
于 2012-09-11T00:35:51.843 に答える
1

のドキュメントによるとcall_user_func()

5.2.3現在:

$instance = call_user_func($myClass.'::factory', array('arg' => 'value'));

そして私はこれが5.2.0で動作すると思います:

$instance = call_user_func(array($myClass, 'factory'), array('arg' => 'value'));
于 2012-09-11T02:46:57.573 に答える