目次
php4 と php5 の違いは何ですか?
ホームページ バックエンド開発 PHPの問題 php4とphp5の違いは何ですか

php4とphp5の違いは何ですか

Feb 11, 2022 pm 03:34 PM
php

php4 と php5 の違い: 1. php4 にはデストラクターがありませんが、php5 にはデストラクターがあります; 2. php4 で関数またはメソッドに変数を渡すとき、変数は実際には 1 回コピーされます、php5 のオブジェクトは常に参照の形式で存在します。

php4とphp5の違いは何ですか

このチュートリアルの動作環境: Windows10 システム、PHP7.1 バージョン、DELL G3 コンピューター

php4 と php5 の違いは何ですか?

コンストラクターとデストラクター

PHP4 では、関数がオブジェクトと同じ名前を持つ場合、この関数はオブジェクトのコンストラクターになります。PHP4 にはデストラクターの概念がありません。

PHP5 では、コンストラクターは __construct という名前で統一され、デストラクターの概念が導入され、一律 __destruct という名前が付けられます。

例 1: コンストラクターとデストラクター

class foo {undefined
var $x;
function __construct($x) {undefined
$this->x = $x;
}
function display() {undefined
print($this->x);
}
function __destruct() {undefined
print("bye bye");
}
}
$o1 = new foo(4);
$o1->display();
?>
ログイン後にコピー

上記の例では、foo クラスの呼び出しを終了すると、そのデストラクターが呼び出されます。上記の例では、「bye bye」を出力します。 。

オブジェクトリファレンス

ご存知のとおり、PHP4 では、関数またはメソッドに変数を渡すと、実際にはその変数がコピーされます。つまり、関数またはメソッドに渡した変数がコピーされます。参照記号「&」を使用してコピーではなく参照を作成することを宣言しない限り、この変数のコピーです。 PHP5ではオブジェクトは常に参照の形で存在し、オブジェクトへの代入演算も参照演算となります。

例 2: オブジェクトの参照

class foo {undefined
var $x;
function setX($x) {undefined
$this->x = $x;
}
function getX() {undefined
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1;
$o1->setX(5);
if($o1->getX() == $o2->getX()) print("Oh my god!");
?>
ログイン後にコピー

オブジェクトのクローン

上記のように、オブジェクトが常に参照の形式で呼び出される場合、オブジェクトのコピーをどうすればよいでしょうか? PHP5 は、__clone 構文を使用したオブジェクトのクローン作成という新機能を提供します。

例 3: オブジェクトの複製

class foo {undefined
var $x;
function setX($x) {undefined
$this->x = $x;
}
function getX() {undefined
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1->__clone();
$o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant");
?>
ログイン後にコピー

オブジェクトの複製方法は他の多くのアプリケーション言語に存在するため、その安定性について心配する必要はありません。 :)

オブジェクトのプライベート、パブリック、およびプロテクト モード

PHP4 では、オブジェクトのすべてのメソッドと変数はパブリックです。つまり、オブジェクトの外部でオブジェクトを操作でき、任意の変数や変数を操作できます。方法。 PHP5 では、このアクセス許可を制御するために、Public、Protected、Private という 3 つの新しいモードが導入されています。

  • パブリック モード (パブリック): オブジェクトの外部での操作制御を許可します。

  • プライベート モード (プライベート): このオブジェクト内のメソッドのみが操作および制御を許可されます。

  • 保護モード (保護): このオブジェクトとその親オブジェクトが操作および制御できるようにします。

推奨学習: 「PHP ビデオ チュートリアル

以上がphp4とphp5の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

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

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

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

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

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

CakePHP について話し合う

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

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

CakePHP クイックガイド

See all articles