0

私は自分のウェブサイトにオブジェクト指向デザインを実装することを述べました。私はphpを使用していますが、問題が発生しました。

私の傾向として、私は1つのファイルごとに1つのクラスを定義するのが好きです-他には何もありません。通常、私が正しく覚えていれば、ほとんどの言語では、メインプログラムに明示的にリンクしなくても、同じディレクトリにある場合にクラスを呼び出すことができます(間違っているか、仮想マシンに固有である可能性があります)。

現在、クラスファイルをメインファイルにリンクしないと、phpはエラーを送信します。その上、親のクラスファイルへのリンクを定義しない限り、子クラスは実行されません。

すべてのファイルを明示的にリンクする必要がありますか?

詳細については、コードのスニペットを次に示します。

<?php 



include_once 'VRC_Header2.php';
include_once 'UserService.php'; //Child class file of DB_MySQL.php
include_once 'DB_MySQL.php'; //Parent class
    //Without the two links above, this file will not execute

次に、子クラス:

class UserService extends DB_MySQL

{...

どんな助けでも大歓迎です。

4

2 に答える 2

0

すべてのクラスファイルを相互に含める必要があります。そうしないと、他のページはクラスがどこにあるかを理解できません。

namespaceコンセプトが使えます。

http://php.net/manual/en/language.namespaces.php

ただし、これにはクラスファイルを含める必要があります。

于 2012-09-22T06:05:20.597 に答える
0

はい、PHPでは、インスタンス化する前に、必要なすべてのクラスを含める必要があります。

これを回避する1つの方法は、自動読み込みを使用することです。

http://php.net/manual/en/language.oop5.autoload.php

これは、ほとんどのPHPフレームワーク(Zend Frameworkなど)で使用されます。

于 2012-09-22T06:07:41.950 に答える