4

だから私はPHP5.3へのアップデートを拒否するホスティングを持っています(これは迷惑ですが同時に問題ありません;私は柔軟性があります)が、本当に私を悩ませているのは__callStaticが利用できないことだけです。

単一のクラスに統合したいモジュールをロードしました(つまり、モジュールをロードし、メインクラスの__callStaticメソッドへの呼び出しを介してそれらのモジュールの関数にアクセスするクラスがあります)が、ローカルからアップロードした場合サーバーをサーバーにテストしましたが、明らかに__callStaticメソッドが機能しませんでした。

まだ静的な代替手段はありますか?registry::some_func()クリーンなコードで、の代わりに二重コロン(つまり)を探すのが好きです$registry->some_func()

これのもう1つの欠点は、global関数内でキーワードを使用することを余儀なくされていることです(これは、私自身の好みでは非常厄介です)。

また、コードは非静的メソッドの代わりに静的メソッドを使用することで非常に高速になり、さらにクリーンになりました。

また、5.2では通常どおり__callStaticメソッドを記述してから、メソッドを明示的に呼び出すことを考えました。たとえばregistry::__callStatic("some_func"), array("val", "val2", "val3")、5.3にアップグレードすると、移行がさらに簡単になります。この方法についての考えは?

ありがとう!

4

1 に答える 1

1

これを実行したい唯一の理由がダブルコロンのスピードと主観的な魅力である場合、ダッシュアンドブラケットのタオに感謝し、思い切ってオブジェクトインスタンスを使用するように成長すると思います。あなたが話す「すっきりとしたコードルック」はハンマーパンツのようなものです...1年はクールですが、数年後の年配で賢いときはそれほどクールではありません。__callStatic()(IMVHO)は、せいぜい不必要なマイナーな利便性であり、最悪の場合、貧弱なクラス設計の回避策です。:)

于 2011-01-06T22:41:52.693 に答える