ホームページ php教程 php手册 PHP5 をはじめてみる (1)

PHP5 をはじめてみる (1)

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

php5

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

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

開始する前に、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!");
?>

オブジェクトの複製

前述したように、オブジェクトが常に参照として呼び出されるオブジェクトのコピーを取得したい場合はどうすればよいでしょうか? 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 関数 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();
?>
ヒント: オブジェクト内の変数は常にプライベート形式で存在し、オブジェクトは直接操作できます変数を使用することは、オブジェクト指向プログラミングの習慣としては適切ではありません。より良い方法は、処理するために必要な変数をオブジェクト メソッドに渡すことです。


インターフェース

ご存知のとおり、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衣類リムーバー

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)

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 バージョンを更新します。

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

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

See all articles