ホームページ > バックエンド開発 > PHPチュートリアル > PHP オブジェクト指向プログラミングの詳しい説明: クラスとオブジェクト_PHP チュートリアル

PHP オブジェクト指向プログラミングの詳しい説明: クラスとオブジェクト_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:50:02
オリジナル
1201 人が閲覧しました

PHP オブジェクト指向プログラミングの詳細な説明: クラスとオブジェクト

PHP オブジェクト指向プログラミングの詳細な説明: クラスとオブジェクト

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


この PHP5 オブジェクト指向プログラミング (OOP) の入門が初心者にとって有益であり、より多くの PHPer が OO プログラミングに切り替え始めることができるようになることを願っています。


PHP4 と比較すると、PHP5 はオブジェクト指向の点で大きく変わりました。 PHP5環境におけるオブジェクト指向のみを紹介します。そして、PHP5 の発展に従うために私たち自身も変わらなければなりません。お使いの環境でコード結果が一致しない場合は、お使いの環境がPHP5であることを確認してください。


OOP について初めて聞いた読者でも、この記事は理解できると想定しています。ただし、PHP についてある程度の知識が必要であると思います。


後でいくつかの例を使用して、PHP5 の OO 基盤を徐々に分析していきます。


オブジェクト指向は、コードのスケーラビリティとコードの保守性という 2 つの問題のみを解決します。


php はますます Java に似てきていると言わざるを得ません。

編集リファレンス: http://www.lai18.com/content/425094.html

すべてはオブジェクトです: すべてはオブジェクトです。

オブジェクト指向プログラミング (OOP) の考え方は、コンピューター言語での物事の記述を、現実世界の物事の真の外観と可能な限り一致させることを目指しています。オブジェクト指向言語は私たちの生活と密接な関係があり、オブジェクト指向言語を学ぶのは実はとても簡単です。このアプリケーションは、私たちの生活のロジックにより沿っています。


クラスはオブジェクトを記述するために使用されます:


クラスは各オブジェクトに含める必要があるデータを記述し、クラスは各オブジェクトの動作特性を記述します。


クラス/オブジェクト: クラスとオブジェクトは、オブジェクト指向メソッドの中核概念です。


クラスは、物事のタイプの説明、抽象的かつ概念的な定義です


オブジェクトは、実際に存在するこの種のすべての個体であるため、インスタンスとも呼ばれます。コンピュータでは、このオブジェクトを格納するためにメモリ上に実メモリ領域が作成されると理解できます。


オブジェクトを作成するプロセスはオブジェクト作成と呼ばれ、インスタンス化とも呼ばれます。


PHP5 のクラスとオブジェクト

まずは基本的なクラスを作成しましょう。


キーワード class は、PHP でクラスを定義するために使用されます。クラス名では通常、最初の文字を大文字にしてから、読みやすくするために各単語の最初の文字を大文字にします。


リーリー

これで、最初の PHP クラスが完成しました。


このクラスを引き続き使用し、new キーワードを使用してオブジェクトを作成し、echo を使用して $p を出力しましょう


変数 $p を定義し、new キーワードを使用して Person オブジェクトを作成しました。


変数 $p を出力すると、出力オブジェクト ID #1 が表示され、これがオブジェクトであることがわかります。


$p = new Person(); は $p = new Person; のように記述することもできますが、後者の方法はお勧めしません。


PHP5 のプロパティ

属性: オブジェクトを記述するために使用されるデータ要素は、オブジェクトの属性と呼ばれます (データ/状態とも呼ばれます)


PHP5 では、属性はクラス内で宣言された変数を指します。変数を宣言するときは、変数のアクセス権を定義するために public private protected のいずれかを使用して変数を変更する必要があります。




パブリック: クラス内外で自由に読み取り、変更できます。


プライベート: 現在のクラス内でのみ読み取りおよび変更できます。


保護: このクラスとそのサブクラスで読み取りおよび変更できます。




属性の使用法: 変数を参照する -> 記号を使用して、変数が指すオブジェクトの属性を呼び出します。


同じオブジェクトのプロパティは、メソッド内の $this-> 表記を介して呼び出されます。


リーリー

プログラムの出力は次のとおりです:


リーリー

Person クラスには、$name と $age という 2 つの属性があります。インスタンス化した後、$p->name と $p->age を使用して属性の内容を出力します。


もちろん、属性を定義するときに初期値を設定することはできません。その場合、結果は出力されません。


オブジェクトのプロパティを変更し、コードの 8 行目と 9 行目、および出力結果の変化に注意してください。出力属性値が変更されたことがわかります。


リーリー

人物オブジェクトを作成し、このオブジェクトのプロパティを変更します。名前を付けてその名前を確認します。あなたは、マシン内の Person オブジェクトの神です。定義したルールに従って、メモリ内にこの実際の Person オブジェクトが作成され、変更可能なプロパティを持ちます。


今、私たちはコンピューター世界の神となり、世界を創造する準備ができています。


Private によって変更されたプロパティには、現在のオブジェクトの外部からアクセスすることはできません。プライベート属性はデータを非表示にするように設定されます。


隐藏:指对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问。


<!--?
// 1-3.php
class Person{
   private $name = "Gonn"; //定义public属性 $name.
   public $age = 20; // 定义 public 属性 $age;
}
$p = new Person(); // 创建对象
echo "他的名字是 ".$p--->name;     // 输出对象$p的属性 $name;
?>
ログイン後にコピー


运行此程序将会输出:


Fatal error: Cannot access private property Person::$name in E:\PHPProjects\test.php on line 9
ログイン後にコピー


私有属性不能被外部访,这样做的好处后面会介绍到。

延伸阅读

此文章所在专题列表如下:

PHP面向对象编程详解:类和对象
PHP面向对象编程详解:类的属性
PHP面向对象编程详解:类的方法
PHP面向对象编程详解:对象的比较
PHP面向对象编程详解:构造函数
PHP面向对象编程详解:类的继承
PHP面向对象编程详解:访问控制
PHP面向对象编程详解:方法覆盖
PHP面向对象编程详解:this关键字
PHP面向对象编程详解:parent::关键字
PHP面向对象编程详解:再谈重载
PHP面向对象编程详解:获取用户数据
PHP面向对象编程详解:用户权限管理类
PHP面向对象编程详解:static变量与方法
PHP面向对象编程详解:单例模式
PHP面向对象编程详解:final类和方法
PHP面向对象编程详解:PHP中的常量
PHP面向对象编程详解:抽象类
PHP面向对象编程详解:抽象方法
PHP面向对象编程详解:抽象类继承抽象类
PHP面向对象编程详解:静态抽象方法
PHP面向对象编程详解:模板模式
PHP面向对象编程详解:接口与抽象方法
PHP面向对象编程详解:接口的实现
PHP面向对象编程详解:接口的继承
PHP面向对象编程详解:类型提示
PHP面向对象编程详解:PHP的多态
PHP面向对象编程详解:instanceof运算符
PHP面向对象编程详解:接口与组合模拟多继承
PHP面向对象编程详解:一个接口实例
PHP面向对象编程详解:简单工厂模式

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1018618.htmlTechArticlePHP面向对象编程详解:类和对象 PHP面向对象编程详解:类和对象 从OOP的视角看,不应区分语言。无论是C++、无论是Java、无论是.net还有更多...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート