目次
PHP のコンストラクターとデストラクターの分析、PHP コンストラクター分析
PHPのコンストラクターとデストラクターの関係は何ですか?
PHP のコンストラクターとデストラクターの違いについてヘルプがありますか?
ホームページ バックエンド開発 PHPチュートリアル PHP でのコンストラクターとデストラクターの分析、php コンストラクター分析_PHP チュートリアル

PHP でのコンストラクターとデストラクターの分析、php コンストラクター分析_PHP チュートリアル

Jul 13, 2016 am 10:17 AM
php コンストラクタ デストラクター

PHP のコンストラクターとデストラクターの分析、PHP コンストラクター分析

コンストラクター

void __construct ([mixed $args [, $... ]] )

PHP 5 では、開発者がクラス内のコンストラクターとしてメソッドを定義できます。コンストラクターを持つクラスは、新しいオブジェクトが作成されるたびにこのメソッドを呼び出すため、オブジェクトを使用する前に初期化作業を行うのに非常に適しています。

注: コンストラクターがサブクラスで定義されている場合、その親クラスのコンストラクターは暗黙的に呼び出されません。親クラスのコンストラクターを実行するには、子クラスのコンストラクターでparent::__construct()を呼び出す必要があります。サブクラスでコンストラクターが定義されていない場合、通常のクラス メソッドと同様に親クラスから継承されます (プライベートとして定義されていない場合)。

例#1 新しい標準コンストラクターの使用

コードをコピーします コードは次のとおりです:

クラスBaseClass {
関数 __construct() {
print "BaseClass コンストラクター内";
}
}

class SubClass は BaseClass を拡張します {
関数 __construct() {
parent::__construct();
print "サブクラスコンストラクター内";
}
}

class OtherSubClass extends BaseClass {
// BaseClass のコンストラクターを継承します
}

// BaseClass コンストラクター内
$obj = 新しいBaseClass();

// BaseClass コンストラクター内
// サブクラスのコンストラクター内
$obj = 新しいサブクラス();

// BaseClass コンストラクター内
$obj = 新しい OtherSubClass();
?>

出力:
BaseClass コンストラクター内
BaseClass コンストラクター内
サブクラスコンストラクター内
BaseClass コンストラクター内

下位互換性のため、PHP 5 がクラス内で __construct() 関数を見つけられず、親クラスから継承していない場合は、クラスと同じ名前の関数である古いスタイルのコンストラクターを見つけようとします。 。したがって、互換性の問題が発生するのは、クラスに __construct() という名前のメソッドがすでに存在するが、それが他の目的に使用されている場合だけです。

他のメソッドとは異なり、__construct() が親クラス __construct() とは異なるパラメーターを持つメソッドによってオーバーライドされた場合、PHP は E_STRICT エラー メッセージを生成しません。

PHP 5.3.3 以降、名前空間では、クラス名と同じ名前のメソッドはコンストラクターとして使用されなくなりました。この変更は、名前空間にないクラスには影響しません。

例#2 名前空間クラスのコンストラクター

コードをコピーします コードは次のとおりです:

名前空間 Foo;
クラスバー{
パブリック関数 Bar() {
// PHP 5.3.0-5.3.2 ではコンストラクターとして扱われます
// PHP 5.3.3 以降は通常のメソッドとして扱われます
}
}
?>

デストラクター

void __destruct(void)

PHP 5 では、C++ などの他のオブジェクト指向言語と同様に、デストラクターの概念が導入されました。デストラクターは、オブジェクトへのすべての参照が削除されるか、オブジェクトが明示的に破棄されるときに実行されます。

例#3 デストラクターの例

コードをコピーします コードは次のとおりです:

クラス MyDestructableClass {
関数 __construct() {
print "コンストラクター内";
$this->name = "MyDestructableClass";
}

関数 __destruct() {
print "" を破棄しています。"n";
}
}

$obj = 新しい MyDestructableClass();
?>

コンストラクターと同様に、親クラスのデストラクターはエンジンによって秘密裏に呼び出されません。親クラスのデストラクターを実行するには、子クラスのデストラクター本体でparent::__destruct()を明示的に呼び出す必要があります。さらに、コンストラクターと同様に、サブクラスは、デストラクターが定義されていない場合、親クラスを継承します。

exit() を使用してスクリプトが終了した場合でも、デストラクターが呼び出されます。デストラクターで exit() を呼び出すと、残りのシャットダウン操作が中止されます。

注:
デストラクターは、すべての HTTP ヘッダーが発行された後、スクリプトが閉じられるときに呼び出されます。スクリプトを閉じたときの作業ディレクトリは、SAPI (Apache など) 内にあるときとは異なる可能性があります。
注:
デストラクター (スクリプトの終了時に呼び出される) で例外をスローしようとすると、致命的なエラーが発生します。

PHPのコンストラクターとデストラクターの関係は何ですか?

コンストラクター: __construct() は、クラスがオブジェクトをインスタンス化するときにこの関数を実行します; デストラクター: __distruct() は、クラスによってインスタンス化されたオブジェクトが破棄されるときに実行します。

PHP のコンストラクターとデストラクターの違いについてヘルプがありますか?

コンストラクター: オブジェクトが初期化されるときに呼び出されます
デストラクター: オブジェクトが破棄されるときに呼び出されます

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/891104.html技術記事 PHP でのコンストラクターとデストラクターの分析、PHP コンストラクター分析コンストラクター void __construct ([mixed $args [, $... ]] ) PHP 5 では、開発者がクラス内のメソッドを...
として定義できます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles