ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルのコンストラクターとデストラクターの詳細な説明

php_PHP チュートリアルのコンストラクターとデストラクターの詳細な説明

WBOY
WBOYオリジナル
2016-07-13 17:15:431040ブラウズ

PHP では、クラスでコンストラクターとデストラクターが使用されます。PHP クラスでのコンストラクターとデストラクターの使用方法について詳しく説明します。詳しく知りたい方は参考にしてください。

デストラクター

PHP デストラクターの役割は、コンストラクターの逆です。コンストラクターはオブジェクトがインスタンス化されるときに自動的に実行され、デストラクターはオブジェクトが破棄されるときに自動的に実行されます。

デフォルトでは、PHP はオブジェクト属性によって占有されているメモリを解放するだけであり、オブジェクト関連のリソースは破棄しません。代わりに、オブジェクトを使用してメモリをクリアし、メモリからオブジェクトを破棄した後、デストラクタを使用してコードを実行します。デストラクター関数 __destruct() の構造は次のとおりです:

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

関数 __destruct(){
/* クラス初期化コード */
}

デストラクターはシステムによって自動的に呼び出され、パラメーターを受け取ることはできません。

例:

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

クラスデス{
関数 __destruct(){
echo "実行が終了し、デストラクタを実行";
}
}
$p=new des() /* クラスをインスタンス化します */
$sum=0;
for($i=0;$i<10;$i++){
$sum=$sum+$i;
echo $sum ."
";
}
?>

デストラクターの呼び出し

PHPでデストラクタを呼び出す方法?デストラクターは、php スクリプトがオブジェクトに関連付けられなくなったときに呼び出されます。デストラクターを呼び出してオブジェクトを明示的に破棄する場合は、そのオブジェクトを指す変数に値を割り当てないことができます。通常は、変数に NULL を割り当てるか、unset() 関数を使用します。

例:

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

クラスデス{
関数 __destruct(){
echo "オブジェクトが破棄され、デストラクターが実行されます
";
}
}
$p=new des() /* クラスをインスタンス化します */
echo "プログラムが開始します
";
unset($p); /* 変数 $p を破棄します */
echo "プログラムは終了します";
?>

コンストラクター

クラスを使用するプロセスでは、オブジェクトの複数のフィールドを即座にインスタンス化する必要がある場合があります。これを手動で実行すると、多くの予期せぬ問題が発生します。 。

PHP コンストラクター関数は、クラスがインスタンス化されるときに自動的に実行される関数であり、コンストラクターとも呼ばれます。

コンストラクターの宣言は他の関数と同様に「__construct」という固定名であり、その構造は以下の通りです。

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

例:

関数 __construct([引数 1,引数 2,引数 3]){

/* クラス初期化コード */
}

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

クラスユーザー{
パブリック $name;
プライベート $パスワード;
プライベート $login;
パブリック関数 __construct($name,$password){
$this->name=$name;
$this->password=$password;
$this->login=time();
}
関数 getlogin(){
Return(date('M d,Y',$this->login));
}
}
$user=新しいユーザー('結婚','888888');
echo "ユーザー名: ". $user->name. "
";
print("アクセス時間".$user->getlogin());
?>

親クラスのコンストラクターを呼び出す

コンストラクターはサブクラスから呼び出すことができます。PHP は親クラスのコンストラクターを呼び出すときに、parent キーワードを使用する必要があります。そうしないと、コンストラクターは自動的に呼び出されません。

例:

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

クラスタスク1{
パブリック関数 __construct(){
echo "今日は月曜日です" "
";
}
}
クラス task2 は task1 を拡張します{
関数 __construct(){
parent::__construct() /* 親クラスのコンストラクターを呼び出します */
echo 「働かなければなりません!」;
}
}
新しいタスク2;
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628822.html技術記事 PHP では、コンストラクターとデストラクターの両方がクラスで使用されます。ここでは、PHP クラスでのコンストラクターとデストラクターの使用方法について詳しく説明します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。