0

私はOOPが初めてです。以下に例を見ました。これgetStudentName()は静的メソッドとして設定されています。私が持っている OOP の知識に基づいて、このメソッドは非静的メソッドである必要があります。

ただし、コードは間違っていても機能します。コードに悪影響を与えることなく非静的メソッドを静的にできるかどうかを知りたいですか?

ところで、コードは PHP によって書かれています。

class student{

    public static function getStudentName($studentID){
             ....
             return $studentName;

    }

}

$stuName = student::getStudentName($stuID)
4

3 に答える 3

1

私の知る限り、静的メソッドを PHP の通常のメソッドとして呼び出すことができます。

$someStudent->getStudentName()

student::getStudentName()

しかし、$this はありません。

この具象メソッドを静的にするのが良いかどうかは、その機能に依存します。

学生オブジェクトの名前を取得する必要がある場合は、それを正常にします。

すべての学生オブジェクトで ID を検索し、そのオブジェクトの名前を取得する必要がある場合は、それを静的にします。

于 2012-05-11T11:27:48.600 に答える
0

依存します。

クラスの「学生」は学生でなければなりません。studentId は属性であり、データベースに保存されます。データベースから学生または学生名を取得することは別のことです。

ActiveRecord パターンを使用する場合、わかりました、独自のクラスはそのようなことを知っていますが、これを行うとはるかに関連性があります

$instance = student::find($id);
$name = $instance->name();

ただし、場合によってはこれしかできません

$name = student::find_and_return_the_name($id);

リソースの構築に非常に費用がかかる場合。

于 2012-05-11T11:29:06.040 に答える
0

PHP では、「static」キーワードを無視または推測して、E_STRICT エラーのみをスローすることができます (デフォルトの error_reporting マスクの下に隠されています)。

于 2012-05-11T11:38:19.147 に答える