0

私はphp oopの初心者です。私の質問は、同じクラスファイルにクラスのオブジェクト/インスタンスを作成するのが賢明ですか? このように: myclass.php

<?php
class myClass{
    public $a
    function myFunction()
        echo $this->a;
    }
}
$obj= new myClass;
$obj->$a='This is my class file';
?>

おそらく、これは PHP のすべての専門家にはよく知られていますが、これは私にとって非常に新しく、基本的な概念です。

4

1 に答える 1

2

クラスが定義されたのと同じファイル内でのクラスのインスタンス化を妨げるルールはありません。それはすべて、あなたがそれで何をしたいのかにかかっています。

たとえば、クラスをインスタンス化してインスタンスを返す静的メソッドを作成できます。これは、シングルトン パターンまたはファクトリ パターンを実装する場合に便利です。$objただし、例で定義している変数のようなグローバル変数を持つことは悪い習慣と見なされます。

作成時にインスタンスを初期化するだけの場合は、コンストラクターで実行する必要があります。

たとえば、MyClassクラスはMyClass.phpファイルに存在する可能性があります。

<?php

class MyClass {
    private $a;

    public function __construct() {
        $this->a = 'This is my class file';
    }

    public function myFunction() {
        return $this->a;
    }
}

次に、実際にMyClassインスタンスを使用するファイルで、次のようにすることができます。

<?php

require_once 'MyClass.php';

$myInstance = new MyClass();
echo $myInstance->myFunction();
于 2013-06-30T05:04:57.937 に答える