2

コードを明確にするために、PHP のオブジェクトが定義されているときに関数またはブロックを実行して、物事をより Java に近づけることができるかどうか疑問に思っています。

を介してインスタンス化されているのではなく、Java__construct()のように定義されているためです。PHPにはJavamain()に相当するものがありますか?main()

OO PHP でプロジェクト全体をコーディングした経験のある人向け: オブジェクト内に含めるべきコードと含めるべきでないコードをどのように決定しますか?

4

4 に答える 4

2

オブジェクトにはどのようなコードを含める必要がありますか?まあ、それはかなり自由形式の質問です:それは状況によって異なります。

小規模なプロジェクトの場合、すべてを手続き的に行うことができます。ただし、OOは、カプセル化(必要に応じて外部メソッド/属性アクセスのみを許可し、1つのセクションのメカニズムを他の無関係なセクションから非表示にする)や継承(一般的なケースの解決に役立ち、それを絞り込むのに最適)など、大規模なプロジェクトにいくつかの利点をもたらしますコードを適切に整理しながら、要件に合わせて)。

大規模なWebプロジェクト、特に最新のPHPフレームワークを使用しているプロジェクトの場合、ビューレイヤーのコントローラーとコードスニペットを除いて、コードの80%がOOになる可能性があります。ただし、一部のシステム(Wordpressなど)では、より手続き型のスタイルが強制されるため、OOはコードの30%にすぎない可能性があります(私はOOでWPプラグインの開発を行っていますが、そのアプローチは珍しいと言えます)。

これについて詳しく知るには、PHPフレームワーク(Symfony、Zend、Cakeなど)を選択してチュートリアルを実行すると役立つ場合があります。抽象的であるimoで学ぶよりも、行うことで多くを学ぶことができます。

于 2012-12-27T14:07:22.807 に答える
1

本当にしたい場合は、「メイン」関数を作成してから呼び出すことができます。

function main(){

     $obj1 = new Obj1();
     doSomething();
     //etc...

}

main();

私があなたの質問を正しく理解していれば...

于 2012-12-27T14:00:39.910 に答える
1

あなたが求めているのはオブジェクト指向の質問ではありません。Java および同様の言語の main() はフレームワークの機能であり、オブジェクト指向の機能ではありません。すべての main() 定義はアプリケーションのエントリ ポイントであり、とにかく実行しています。

したがって、短い答えは、これは無関係であるということです。より長い答えは、そのような実行順序が必要な場合は、PHP で特定のフレームワークを探すことができるということです。

于 2012-12-27T14:00:47.803 に答える
0

スタック トレースに main が表示されます。これは単にアプリケーションへのエントリ ポイントです。通常、パーサーを呼び出す最初のファイルの最初の行 (または行 0)。

ここに画像の説明を入力

于 2012-12-27T14:06:12.233 に答える