ホームページ php教程 php手册 PHP 5.0 オブジェクト モデルのプロパティとメソッドの詳細な調査

PHP 5.0 オブジェクト モデルのプロパティとメソッドの詳細な調査

Jun 21, 2016 am 09:11 AM
name public

オブジェクト

オブジェクト インスタンスのプロパティは、PHP の他の変数と同様に変数です。ただし、それらを参照するには -> 演算子を使用する必要があります。属性の前にドル記号 $ を使用する必要はありません。

-> と組み合わせて使用​​できます。オブジェクトのプロパティにオブジェクトが含まれている場合、2 つの -> 演算子を使用して、以下の二重参照文字列に配置することもできます。この例では、オブジェクト House 内のプロパティの部屋には、Room オブジェクトのセットが含まれています。

アクセスメソッドはアクセスプロパティと似ています。 -> 演算子は、次のように getLastLogin を呼び出すだけでインスタンスのメソッドを指定するために使用されます。メソッドは、クラス外の関数とほぼ同じように実行されます。

クラスが別のクラスから継承する場合、サブクラスで宣言されていなくても、親クラスのプロパティとメソッドはサブクラスでも有効になります。前に述べたように、継承は非常に強力です。継承されたプロパティにアクセスしたい場合は、基本クラスの独自のプロパティにアクセスする場合と同じように、 :: 演算子を使用して参照するだけです。

function __construct($name="unnamed")
{
$this->name = $name;
}
}

class House
{
//部屋の配列
public $room
}

/ /空の家を作成
$home = 新しい家;

//いくつかの部屋を追加
$home->room[] = new Room("bedroom");
$home->room[] = new Room(" キッチン") );
$home->room[] = new Room("バスルーム");

//家の最初の部屋を表示
print($home->room[0]->name); PHP には 2 つの特別な名前空間があります。親名前空間は親クラスを指し、自己名前空間は現在のクラスを指します。次の例は、親名前空間を使用して親クラスのコンストラクターを呼び出す方法を示しています。また、self を使用してコンストラクター内の別のクラス メソッドを呼び出します。

class Animal //Animal
{
public $blood; //熱血属性か冷血属性
public $name;
public function __construct($blood, $name=NULL)
{
$this->blood = $blood;
if($name)
{
$this->name = $name;
}
}

class Mammal extends Animal //Mammal
{
public $furColor
public; $legs;

関数 __construct($furColor, $legs, $name=NULL)
{
parent::__construct("warm", $name);
$this->furColor = $furColor;脚 = $ 脚
}
}

class Dog extends Mammal
{
function __construct($furColor, $name)
{
parent::__construct($furColor, 4, $name)

self::bark; ();
}

function bark()
{
print("$this->名前は「ワンワン!」と言う)
}
}

$d = new Dog("ブラック・アンド・タン", "アンガス" ");
?>
オブジェクトのメンバーは次のように呼び出されます: 実行時に変数の名前を決定する必要がある場合は、$this->$Property のような式を使用できます。 メソッドを呼び出したい場合は、$obj->$method() を使用できます。

-> 演算子を使用して関数の値を返すこともできますが、これは PHP の以前のバージョンでは許可されていませんでした。たとえば、$obj->getObject()->callMethod() のような式を作成できます。これにより、中間変数の使用が回避され、ファクトリ パターンなどの特定の設計パターンの実装にも役立ちます。







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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iOS の開発者バージョンとパブリック バージョンの違いは何ですか? iOS の開発者バージョンとパブリック バージョンの違いは何ですか? Mar 01, 2024 pm 12:55 PM

毎年、Apple が iOS と macOS の新しいメジャー バージョンをリリースする前に、ユーザーは数か月前にベータ版をダウンロードして最初に体験することができます。同ソフトウェアは一般ユーザーと開発者の両方が使用するため、Appleは開発者向けベータ版のパブリックベータ版である開発者版とパブリック版を両方向けに開始した。 iOS の開発者バージョンとパブリック バージョンの違いは何ですか?文字通りに言うと、開発者バージョンは開発者テスト バージョンであり、パブリック バージョンは公開テスト バージョンです。開発者バージョンとパブリック バージョンは、異なるユーザーを対象としています。開発者バージョンは、Apple が開発者によるテストのために使用します。ダウンロードしてアップグレードするには、Apple 開発者アカウントが必要です。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Java 関数アクセス許可修飾子の公開使用ガイド Java 関数アクセス許可修飾子の公開使用ガイド Apr 26, 2024 am 08:39 AM

Java パブリック アクセス修飾子を使用すると、どこからでも関数にアクセスできるようになり、パブリック API を宣言したり、パッケージやクラス間で共有されるツールやユーティリティを定義したりするために使用されます。具体的な使用方法は以下のとおりです。 構文: public 戻り値型関数名(パラメータリスト) {...} シナリオ: どこからでもアクセスする必要がある関数、パブリック API のメソッド、共有ツールまたはユーティリティ

php が名前を取得できない場合はどうすればよいですか? php が名前を取得できない場合はどうすればよいですか? Nov 24, 2022 am 09:56 AM

form要素のnameとidの値が異なるとブラウザが認識できないため、PHPが名前を取得できない 解決策: 1. 一部のform要素やframe要素がnameを使用していないか確認する; 2. 取得できる要素のみを確認するID は割り当てられますが、名前は割り当てられません; 3. 複数選択ボックスのチェックボックスでは、「join(',', $__POST['name'])」を使用してデータを形成できます。

Vue3でセットアップに名前を追加する方法 Vue3でセットアップに名前を追加する方法 May 13, 2023 am 09:40 AM

Vue3 での名前の用途は何ですか? 1. 再帰コンポーネントを作成するときに名前を定義する必要がある 2. コンポーネントは keep-aliveincludeexclude でキャッシュできる 3. Vue がエラーを報告するときやデバッグしているときに、コンポーネントの名前が表示される Vue3 では name1 が定義されています。セットアップ構文のシュガー モードがスクリプトでオンになっている限り、自動的に生成されます 単一ファイル コンポーネント 対応する名前オプションは、ファイル名に基づいて自動的に生成されます たとえば、Tree.vue の場合、その名前は Tree によって自動的に生成されますこれには欠点があり、名前を変更したい場合はコンポーネント名も変更する必要があり、コンポーネントをインポートする場所がある場合はそれも一緒に変更する必要があります。 2. スクリプトを開いて名前を定義します

Java プログラムはさまざまなアクセス レベルを表示します Java プログラムはさまざまなアクセス レベルを表示します Aug 19, 2023 pm 10:09 PM

アクセス修飾子は、Java プログラミング言語の特定のクラス、インターフェイス、変数、メソッド、コンストラクター、データ メンバー、およびセッター メソッドの可視性の機能を設定するために使用されます。Java 環境では、さまざまな種類のアクセス修飾子があります。デフォルト - 関数を宣言すると、その関数は特定のパッケージでのみ表示されます。 Private - 関数を宣言すると、その関数は特定のクラスでのみ使用可能になります

Javaでpublic修飾子を使用する方法 Javaでpublic修飾子を使用する方法 Apr 18, 2023 pm 06:04 PM

1. 他のクラスは、public として宣言されたクラス、メソッド、コンストラクター、およびインターフェイスにアクセスできます。 2. 相互にアクセスするパブリック クラスが異なるパッケージで配布されている場合は、対応するパブリック クラスが配置されているパッケージをインポートする必要があります。クラスの継承により、すべてのパブリック メソッドと変数はそのサブクラスに継承できます。例 publicclassdemo1{publicstaticvoidmain(String[]args){personp1=newperson();p1.fn();System.out.println(p1.a);//100System.out.println(p1.scorce);/

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。

See all articles