ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向の旅: クラスとオブジェクト_PHP チュートリアル

PHP オブジェクト指向の旅: クラスとオブジェクト_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:08:44772ブラウズ

OOP の観点からは、言語は区別されるべきではありません。 C++、Java、.net、またはその他のオブジェクト指向言語であっても、OO の本当の意味を理解していれば、言語を超えて思考を簡単に変えることができます。 Java、.net、PHP の中で誰が強いかという議論はもうありません。

この PHP5 オブジェクト指向プログラミング (OOP) の入門が初心者にとって有益であり、より多くの PHPer が OO プログラミングに切り替え始めることができるようになることを願っています。
PHP4 と比較して、PHP5 はオブジェクト指向の点で大きく変わりました。 PHP5環境におけるオブジェクト指向のみを紹介します。そして、PHP5 の発展についていくためには、私たち自身も変わらなければなりません。お使いの環境でコード結果が一致しない場合は、お使いの環境がPHP5であることを確認してください。
読者はオブジェクト指向の知識がなくても、この記事は理解できると想定しています。ただし、PHP についてある程度の知識が必要であると思います。
後でいくつかの例を使用して、PHP5 の OO 基盤を徐々に分析していきます。
オブジェクト指向は、コードのスケーラビリティとコードの保守性という 2 つの問題のみを解決します。
php はますます Java に似てきていると言わざるを得ません。
すべてはオブジェクトです: すべてはオブジェクトです。
オブジェクト指向プログラミング (OOP) の考え方は、コンピューター言語での物事の記述を、現実世界の物事の元の外観と可能な限り一致させるように努めます。オブジェクト指向言語は私たちの生活と密接な関係があり、オブジェクト指向言語を学ぶのは実はとても簡単です。このアプリケーションは、私たちの生活のロジックにより沿っています。
クラスはオブジェクトを記述するために使用されます:
クラスは各オブジェクトに含めるべきデータを記述し、クラスは各オブジェクトの動作特性を記述します。
クラス/オブジェクト: クラスとオブジェクトは、オブジェクト指向メソッドの中核概念です。
カテゴリーは、物事の種類の説明、抽象的かつ概念的な定義です
オブジェクトとは、実際に存在するこの種のすべての個体であるため、インスタンスとも呼ばれます。コンピュータでは、このオブジェクトを格納するためにメモリ上に実メモリ領域が作成されると理解できます。
オブジェクトを作成するプロセスはオブジェクト作成と呼ばれ、インスタンス化とも呼ばれます。
PHP5 のクラスとオブジェクト
まず基本的なクラスを作成しましょう。
キーワード class は、PHP でクラスを定義するために使用されます。クラス名では通常、最初の文字を大文字にしてから、読みやすくするために各単語の最初の文字を大文字にします。
ソースプリントを表示しますか?
1
2級の人
3 {
4
5 }
6 $p = 新しい人();
7 エコー $p
8?>
このようにして、最初の PHP クラスが完成しました。
引き続きこのクラスを使用し、new キーワードを使用してオブジェクトを作成し、echo を使用して $p を出力しましょう
変数 $p を定義し、new キーワードを使用して Person オブジェクトを作成しました。
変数 $p を出力すると、出力オブジェクト ID #1 が表示され、これがオブジェクトであることがわかります。
$p = new Person(); は $p = new Person; と書くこともできますが、後者の方法を使用することはお勧めできません。
PHP5 のプロパティ
属性: オブジェクトを記述するために使用されるデータ要素は、オブジェクトの属性と呼ばれます (データ/状態とも呼ばれます)
PHP5 では、属性はクラスで宣言された変数を指します。変数を宣言するときは、変数のアクセス権を定義するために public private protected のいずれかを使用して変数を変更する必要があります。
•パブリック: クラス内外で自由に読み取り、変更できます。
•プライベート: 現在のクラス内でのみ読み取りおよび変更できます。
•保護: このクラスとそのサブクラスで読み取りおよび変更できます。
属性の使用: 変数の -> 記号を参照して、変数が指すオブジェクトの属性を呼び出します。
メソッド内の $this-> 表記を介して同じオブジェクトのプロパティを呼び出します。
ソースプリントを表示しますか?
0102クラスの人{
03 public $name = "Gonn" //パブリック属性 $name を定義します。
04 public $age = 20; // パブリック プロパティ $age を定義します。
05 }
06 $p = new Person() // オブジェクトを作成します
;
07 echo $p."
" // 出力オブジェクト
08 echo "彼の名前は ".$p->name; // オブジェクト $p $name; の属性を出力します。
09 エコー "
";
10 echo '彼の年齢は '$p->age; //年齢属性を出力します。
11?>
プログラムの出力結果は次のとおりです:
ソースプリントを表示しますか?
1 彼の名前はゴンです
2 彼の年齢は24歳です
Person クラスには $name と $age という 2 つの属性があります。インスタンス化後、$p->name と $p->age を使用して属性の内容を出力します。
もちろん、属性を定義するときに初期値を設定することはできません。その場合、結果は出力されません。
オブジェクトのプロパティを変更し、コードの 8 行目と 9 行目、および出力結果の変化に注意してください。出力属性値が変更されたことがわかります。
ソースプリントを表示しますか?
0102 // 1-4.php
03クラスの人{
04 public $name = "NoName"; //パブリック属性 $name を定義します。
05 public $age = 20; // パブリック プロパティ $age を定義します。
06 }
07 $p = new Person() // オブジェクトを作成します
;
08 $p->name = 'Tom' //名前をトムに変更します
;
09 $p->age = 25; // 年齢を 25 歳に変更します。
10 echo "彼の名前は ".$p->name; // オブジェクト $p $name; を出力します。
11 エコー「
;
12 echo '彼の年齢は '.$p->age; //年齢属性を出力します。
13?>
Person オブジェクトを作成し、このオブジェクトのプロパティを変更します。名前を付けてその名前を確認します。あなたは、マシン内の Person オブジェクトの神です。定義したルールに従って、メモリ内にこの実際の Person オブジェクトが作成され、変更可能なプロパティを持ちます。
さて、私たちはコンピューター世界の神です。世界を創造する準備をしましょう。
プライベートの変更されたプロパティには、現在のオブジェクトの外部からアクセスできません。プライベート属性はデータを非表示にするように設定されます。
非表示: オブジェクトのプロパティやメソッドが外部プログラムから直接アクセスされないように、オブジェクトを保護するメカニズムを指します。
ソースプリントを表示しますか?
1
2 // 1-3.php
3クラスの人{
4 private $name = "Gonn" //パブリック属性 $name を定義します。
5 public $age = 20; // パブリック プロパティ $age を定義します。
6 }
7 $p = new Person() // オブジェクトを作成します
;
8 echo "彼の名前は ".$p->name; // オブジェクト $p $name; の属性を出力します。
9 ?>
このプログラムを実行すると以下が出力されます:
ソースプリントを表示しますか?
1 致命的なエラー: E:PHPProjectstest.php の行 9 のプライベート プロパティ person::$name にアクセスできません
プライベートプロパティには外部からアクセスできません。このメリットについては後で紹介します。
http://www.bkjia.com/PHPjc/477751.html
www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/477751.html

技術記事

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。