PHPオブジェクト向け:クラスとオブジェクト


OOPの視点から見ると、言語を区別すべきではない.C++にかかわらず、Javaにかかわらず、Netにはオブジェクト向けの言語がもっとあります.OOの真の意味を理解すれば、言語を越えて、あなたの考えを楽にジャンプさせることができます.Javaに対して、.Net、PHPの間で誰が強いか弱いかの争いがあった.
PHP 5のオブジェクト向けプログラミング(OOP)を紹介するこの資料は初心者に利益をもたらし、より多くのPHPerがOOへのプログラミングプロセスを開始することを望んでいる.
PHP 4に対してPHP 5はオブジェクト向けに大きく変化している.PHP 5環境でのオブジェクト指向のみを紹介します.PHP 5の発展に従うために、私たちは自分を変えなければなりません.コード結果があなたの環境で一致しない場合は、あなたの環境がPHP 5であることを確認してください.
読者には対象に関する知識がないと仮定し、OOPを初めて聞いたとしても、この文章を読むことができます.しかし、PHPについて少し理解しなければならないことを望んでいます.
PHP 5のOOベースを徐々に解析するために、いくつかの例を使用する.
オブジェクト向けに解決されたのは、コードの拡張性、コードのメンテナンス性の2つの問題だけです.
phpはますますJavaに似ていると言わざるを得ません.
Everything is Object:万事万物すべて対象.
オブジェクト向けプログラミング(OOP)は、コンピュータ言語における物事の記述と現実世界におけるその物事の本来の姿を可能な限り一致させることを意図している.オブジェクト向け言語は私たちの生活と通じるものであり、オブジェクト向け言語の学習は実は簡単である.応用の中で私たちの生活論理にもっと合っている.
クラス(Class)は、オブジェクト(Object)を記述するために使用されます.
クラスは、各オブジェクトに含まれるべきデータを記述し、クラスは各オブジェクトの動作特性を記述します.
Class/object:クラス(class)とオブジェクト(object)は、オブジェクト向けメソッドの核心概念です.
クラスは一つの物事の説明であり、抽象的で、概念的な定義である.
オブジェクトは実際に存在するこの種の事物の各個体であるため、インスタンス(instance)とも呼ばれる.コンピュータでは、メモリに実質的に存在するメモリ領域が作成され、このオブジェクトが格納されていると理解できます.
オブジェクトを作成するプロセスは、オブジェクトの作成と呼ばれ、インスタンス化とも呼ばれます.
PHP 5のクラスとオブジェクト
まず基礎的なクラスを構築します.
PHPではキーワードclassを使用してクラスを定義します.クラスのネーミングは一般的に最初の文字を大文字で使用し、その後、各単語の最初の文字を大文字で接続する方法で読みやすいです.
<?
class Person 
{
 
}

$p = new Person();

echo $p;
?>

これで、私たちは最初のPHPクラスを持っています.
このクラスを引き続き使用し、newというキーワードを使用してオブジェクトを作成し、echoで$pを印刷します.
変数$pを定義し,newというキーワードを用いてPersonのオブジェクトを作成した.
変数$pを印刷すると、出力Object id#1にオブジェクトであることが示されます.
$p = new Person();$p=new Personと書くこともできます.しかし、後の方法はお勧めしません.
PHP 5の属性
≪プロパティ|Properties|emdw≫:オブジェクトを記述するデータ要素をオブジェクトと呼ぶプロパティ(データ/ステータスとも呼ばれる)
PHP 5では、属性はclassで宣言された変数を指す.変数を宣言する場合は、public private protectedの1つを使用して修飾し、変数のアクセス権を定義する必要があります.
Public(公開):クラスの内部外部で自由に読み取り、修正できます.
Private(プライベート):この現在のクラスの内部でのみ読み取り、変更できます.
Protected(保護):このクラスとクラスのサブクラスで読み取りと変更が可能です.
≪属性の使用|Use Attribute|oem_src≫:変数を参照する->シンボル呼び出し変数によってオブジェクトの属性を指定します.
メソッド内で$this->シンボルを使用して同じオブジェクトのプロパティを呼び出します.
<?
class Person{
   public $name = "Gonn"; //  public   $name.
   public $age = 20; //    public    $age;
}
$p = new Person(); //     
echo $p."<br>";    //     
echo "     &nbsp;".$p->name;     //     $p    $name;
echo "<br>";
echo '     &nbsp;'$p->age; //  age  .

?>

プログラム出力結果:
      Gonn
      24

Personクラスには$nameと$ageの2つのプロパティがあり、インスタンス化後、$p->nameと$p->ageを使用してプロパティの内容を印刷します.
もちろん、プロパティ定義時に初期値を設定しないと、結果は印刷されません.
オブジェクトのプロパティを変更し、8行と9行のコード、出力結果の変化に注意します.出力のプロパティ値が変更されたのを見ました.
<?
// 1-4.php
class Person{
   public $name = "NoName"; //  public   $name.
   public $age = 20; //    public    $age;
}
$p = new Person(); //     
$p->name = 'Tom'; //      Tom
$p->age = 25 ; //       25  .
echo "     &nbsp;".$p->name;     //     $p    $name;
echo "<br>";
echo '     &nbsp;'.$p->age; //  age  .

?>

Personのオブジェクトを作成し、そのオブジェクトのプロパティを変更します.名前を付けて、名前を表示します.あなたは機械の中のこのPersonオブジェクトの神で、あなたが定義した規則に従って、この実質的にメモリの中のPersonオブジェクトは作成されて、しかもそれは変えることができる属性があります.
今、私たちはコンピュータの世界の神で、世界を創造する準備ができています.
Private修飾のプロパティは、現在のオブジェクト以外にアクセスできません.プライベート属性を設定するのは、データの非表示を行うためです.
非表示:オブジェクトのプロパティまたはメソッドが外部のプログラムから直接アクセスされないようにする保護メカニズムを指します.
<?
// 1-3.php
class Person{
   private $name = "Gonn"; //  public   $name.
   public $age = 20; //    public    $age;
}
$p = new Person(); //     

echo "     &nbsp;".$p->name;     //     $p    $name;

?>

このプログラムを実行すると、次のように出力されます.
Fatal error: Cannot access private property Person::$name in E:\PHPProjects\test.php on line 9

プライベート属性は外部からアクセスできません.このようなメリットは後述します.