ホームページ php教程 php手册 PHP5 トライアル版 (1)

PHP5 トライアル版 (1)

Jun 21, 2016 am 09:14 AM
function gt php5 private

php5

PHP5 はまだ正式にリリースされていませんが (開発バージョンはすでにダウンロード可能です)、新しいバージョンがもたらす驚きを体験し始めることができます。次の紹介では、PHP5 の 3 つの主要な機能に焦点を当てます。これら 3 つの主な機能は次のとおりです:

* 新しいオブジェクト モード (新しいオブジェクト モード)
* 例外処理 (例外)
* 名前空間 (名前空間)

開始する前に、2 つの点を宣言する必要があります:

* 記事内の例 順番操作方法を説明するため、一部PHP4の表現方法を使用していますが、これは記事の読みやすさを向上させるためです。
* 記事で説明されている部分と PHP5 の最終リリース バージョンの間にはいくつかの違いがある可能性があります。

PHP5 が最終的に正式にリリースされる前に、http://snaps.php.net から最新のコンパイル済みバージョンをダウンロードできます。実際に体験してみましょう。PHP5 がもたらすこれらの新機能を見てみましょう。


新しいオブジェクトモード

PHP5 のオブジェクトはより体系的かつ包括的に調整されており、現在の外観は Java にいくらか似ているかもしれません。このセクションでは、PHP5 の新しいオブジェクト モードに焦点を当て、いくつかの簡単な例を示します。このセクションを PHP5 への取り組みの新たな出発点にしてください。 :)

* コンストラクターとデストラクター
* オブジェクトへの参照
* オブジェクトのクローン
* オブジェクトのプライベート、パブリック、保護モード
* インターフェイス (インターフェイス)
* 抽象クラス
* __call
* __set および __get
* 静的メンバー


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

PHP4 では、関数がオブジェクトと同じ名前を持つ場合、この関数はオブジェクトのコンストラクターになります。PHP4 にはデストラクターの概念がありません。
PHP5 では、コンストラクターは __construct という名前で統一され、デストラクターの概念が導入され、一律 __destruct という名前が付けられます。

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

class foo {
var $x;
function __construct($x) {
$this->x = $x;
}
function display () {
print($this->x);
}
function __destruct() {
print("bye bye");
}
}
$o1 = new foo(4);
$o1-> ;display( );
?>

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


オブジェクト参照

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

例 2: オブジェクト参照


class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1;
$o1->setX(5); if($o1->getX() == $o2->getX()) print("Oh my god!");
?>


オブジェクトの複製

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

例 3: オブジェクトのクローン作成
class foo {
var $x;
function setX($x) {
$this->x = $x;
}
function getX() {
return $this->x;
}
}
$o1 = new foo;
$o1->setX(4);
$o2 = $o1->__clone();
$o1->setX (5); if($o1->getX() != $o2->getX()) print("コピーは独立しています");
?>

オブジェクトのクローン作成の方法は、他の多くのメソッドでも使用されます。アプリケーション言語 すべてがそこにあるため、安定性について心配する必要はありません。 :)


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

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

パブリックモード(Public): オブジェクトの外部での操作制御を可能にします。
プライベート モード (プライベート): このオブジェクト内のメソッドのみが操作および制御を許可されます。
保護モード (保護): このオブジェクトとその親オブジェクトが操作および制御できるようにします。

例 4: オブジェクトのプライベート、パブリック、プロテクトモード

class foo {
private $x;
public function public_foo() {
print("I'm public");
}
protected function protected_foo() {
$this->private_foo(); //同じクラスにいるので、プライベート メソッドを呼び出すことができます
print("I'm protected");
}
private function private_foo() {
$this->x = 3;
print("私はプライベートです");
}
}
class foo2 extends foo {
public function display() {
$this-> protected_foo();
$this->public_foo();
// $this->private_foo() // 関数は基本クラスではプライベートです
}
} $x = new foo();
$x->public_foo();
//$x->protected_foo(); //無効な場合は、クラスおよび派生クラスの外で保護されたメソッドを呼び出すことはできません
//$x->private_foo(); //無効プライベート メソッドはクラス内でのみ使用できます $x2 = new foo2();
$x2->display();
?>

ヒント: オブジェクト内の変数は常にプライベート形式で存在し、オブジェクト内の 1 つの変数を直接操作しますこれは、オブジェクト指向プログラミングの良い習慣ではありません。より良い方法は、処理のために必要な変数をオブジェクトのメソッドに渡すことです。


インターフェース

ご存知のとおり、PHP4 のオブジェクトは継承をサポートしており、オブジェクトを別のオブジェクトの派生クラスにするには、「class foo extendsparent」のようなコードを使用して制御する必要があります。 PHP4 および PHP5 では、オブジェクトは 1 回のみ継承でき、多重継承はサポートされていません。ただし、PHP5 では、インターフェイスという新しい用語が生まれました。インターフェイスは、特定の処理コードを持たない特殊なオブジェクトであり、その後は、「implement」キーワードを使用して便利に使用できます。必要なインターフェイスが統合され、その後、特定の実行コードが追加されます。

例 5: インターフェイス

interface displayable {
function display();
}
interface printable {
function doprint();
}

class fooimplements displayable,printable {
function display() {
// code
} function doprint() {
// code
}
}
?>

上記の例からわかるように、これはコードの読みやすさと普及を向上させるのに非常に役立ちます。オブジェクト foo には、displayable と printable という 2 つのインターフェイスが含まれています。この時点で、オブジェクト foo には、display() メソッドと print() メソッドが必要であることが明確にわかります。インターフェイス部分を理解するだけで、簡単に操作できます。オブジェクトが内部でどのように動作するかを気にせずにオブジェクトを操作できます。



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

php5とphp8の違いは何ですか php5とphp8の違いは何ですか Sep 25, 2023 pm 01:34 PM

php5 と php8 の違いは、パフォーマンス、言語構造、型システム、エラー処理、非同期プログラミング、標準ライブラリ関数、セキュリティの点です。詳細な紹介: 1. パフォーマンスの向上. PHP5 と比較して、PHP8 はパフォーマンスが大幅に向上しています. PHP8 では、高頻度の実行コードをコンパイルおよび最適化できる JIT コンパイラーが導入されており、それによって実行速度が向上しています; 2. 言語構造の改善、 PHP8 では、いくつかの新しい言語構造と関数が導入されており、PHP8 では名前付きパラメータがサポートされており、開発者はパラメータの順序などの代わりにパラメータ名を渡すことができます。

機能とはどういう意味ですか? 機能とはどういう意味ですか? Aug 04, 2023 am 10:33 AM

ファンクションとは、関数を意味します。これは、特定の関数を備えた再利用可能なコード ブロックです。プログラムの基本コンポーネントの 1 つです。入力パラメータを受け取り、特定の操作を実行し、結果を返すことができます。その目的は、再利用可能なコード ブロックをカプセル化することです。コードの再利用性と保守性を向上させるコード。

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

Javaでプライベートとはどういう意味ですか Javaでプライベートとはどういう意味ですか Nov 24, 2022 pm 06:27 PM

Java では、プライベートは「プライベート」を意味し、クラス、プロパティ、メソッドを変更するために使用されるアクセス制御修飾子です。 private で変更されたクラス メンバーは、クラス自体のメソッドによってのみアクセスおよび変更でき、他のクラス (クラスのサブクラスを含む) からはアクセスおよび参照できません。したがって、private 修飾子は最高レベルの保護を持ちます。

php5でポート80を変更する方法 php5でポート80を変更する方法 Jul 24, 2023 pm 04:57 PM

php5 でポート 80 を変更する方法: 1. Apache サーバー設定ファイルのポート番号を編集します; 2. PHP 設定ファイルを編集して、PHP が新しいポートで動作することを確認します; 3. Apache サーバーを再起動すると、PHP アプリケーションが起動します。新しいポートで実行を開始します。ポートで実行します。

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

Python の「enumerate()」関数の目的は何ですか? Python の「enumerate()」関数の目的は何ですか? Sep 01, 2023 am 11:29 AM

この記事では、Python の enumerate() 関数と「enumerate()」関数の目的について学びます。 enumerate() 関数とは何ですか? Python の enumerate() 関数は、データ コレクションをパラメータとして受け取り、列挙オブジェクトを返します。列挙オブジェクトはキーと値のペアとして返されます。キーは各項目に対応するインデックス、値は項目です。構文 enumerate(iterable,start) パラメータ iterable - 渡されたデータ コレクションは、iterablestart と呼ばれる列挙オブジェクトとして返すことができます。 - 名前が示すように、列挙オブジェクトの開始インデックスは start によって定義されます。無視したら

See all articles