PHP5 をはじめてみる (2)
php5
抽象クラス
抽象クラスはインスタンス化できません。
抽象クラスでは、他のクラスと同様に、変数とメソッドを定義できます。
抽象クラスは抽象メソッドを定義することもできます。抽象クラスのメソッドは実行されませんが、その派生クラスで実行される可能性があります。
例 6: 抽象クラス
abstract class foo {
protected $x;
abstract function display();
function setX($x) {
$this->x = $x;
}
}
class foo2 extends foo {
function display() {
// Code
}
}
?>
__call
PHP5 オブジェクトは特別なメソッド __call() を追加しました、このメソッドが使用されます 他のメソッドを監視しますオブジェクトの中で。オブジェクトに存在しないメソッドを呼び出そうとすると、__call メソッドが自動的に呼び出されます。
例 7: __call
class foo {
function __call($name,$arguments) {
print("電話しましたか? $name です!");
}
} $ x = new foo();
$x->doStuff();
$x->fancy_stuff();
?>
この特別なメソッドを使用して、「オーバーロード」アクションを実装できます。パラメーターを確認し、プライベート メソッドを呼び出して渡します。
例 8: __call を使用して「オーバーロード」アクションを実装する
class Magic {
function __call($name,$arguments) {
if($name=='foo') {
if(is_int) ($arguments[0])) $this->foo_for_int($arguments[0]);
if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
}
} プライベート関数 foo_for_int($x) {
print("ああ int!");
} プライベート関数 foo_for_string($x) {
print("ああ 文字列!");
}
} $x = new Magic();
$x->foo(3);
$x->foo("3");
?>
__set と __get
これは素晴らしいメソッドです、__set と __get メソッドオブジェクトに存在しない変数やメソッドをキャプチャするために使用できます。
例 9: __set と __get
class foo {
function __set($name,$val) {
print("こんにちは、$name に $val を入れようとしました");
}
function __get($name) {
print("$name を要求しました");
}
}
$x = new foo();
$x->bar = 3;
print($x- > ;winky_winky);
?>
型の指示
PHP5 では、オブジェクトのメソッドで、そのパラメーターが別のオブジェクトのインスタンスである必要があることを指定できます。
例 10: 型の表示
class foo {
// コード ...
}
class bar {
public function process_a_foo(foo $foo) {
// 一部のコード
}
}
$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>
パラメーター名の前にオブジェクトを明示的に指定できることがわかります。 PHP5 は、このパラメータがオブジェクト インスタンスであることを認識します。
静的メンバー
静的メンバーや静的メソッドは、オブジェクト指向プログラミングの用語では「オブジェクトメソッド(クラスメソッド)」「オブジェクト変数(クラス変数)」と呼ばれます。
「オブジェクトメソッド」は、オブジェクトがインスタンス化される前に呼び出すことができます。同様に、「オブジェクト変数」は、オブジェクトがインスタンス化される前に (オブジェクトの制御にオブジェクトのメソッドを使用せずに) 独立して制御できます。
例 11: オブジェクトのメソッドとオブジェクト変数
class calculator {
static public $pi = 3.14151692;
static public function add($x,$y) {
return $x + $y
; }
}
$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>
例外処理
例外処理はプログラム エラーを処理するための理想的な方法として認識されているこの概念は、Java と C++ の両方にあります。PHP5 にこのアプリケーションがすでに追加されていることを嬉しく思います。 「try」と「catch」を使用してプログラム エラーを制御してみることができます。
例 12: 例外処理
class foo {
function dive($x,$y) {
if($y==0) throw new Exception("cannot by zero"); return $x/$y;
}
}
$x = new foo();
try {
$x->divide(3,0);
catch (Exception $e) {
echo $e - >getMessage();
echo "n
n";
// ここに致命的な対策がいくつかあります
}
?>
上の例では、中括弧内のステートメントを実行するために "try" を使用しています。 、エラーが発生した場合、コードは処理のためにエラーを「catch」句に渡します。これにより、「catch」句でエラーが処理のためにオブジェクトに渡されることを指定する必要があります。すべてのエラー メッセージを処理するオブジェクトに渡すことができるので、コード構造がより明確になります。
カスタムエラー処理
カスタム エラー処理コードを使用すると、プログラム内の事故を簡単に制御できます。独自のエラー制御クラスを例外クラスから派生する必要があるだけです。独自のエラー制御クラスには、コンストラクターと getMessage メソッドが必要です。以下にその例を示します。
例 13: カスタム エラー処理
class WeirdProblem extends Exception {
private $data;
function WeirdProblem($data) {
parent::Exception();
$this->data = $ data;
}
function getMessage() {
return $this->data . " 奇妙な例外が発生しました!";
}
}
?>
これで、 "throw new WeirdProblem($foo) " を使用できるようになりましたエラーハンドラーをスローします。「try」コードブロックでエラーが発生した場合、PHP5 は自動的にエラーを「catch」部分に渡して処理します。
名前空間
名前空間は、クラスや関数をグループ化するのに役立ちます。関連するクラスや関数をグループ化して、後で簡単に呼び出すことができます。
例 14: 名前空間
namespace Math {
class Complex {
//...code...
function __construct() {
print("hey");
}
}
} $m = new Math::Complex();
?>
実際のアプリケーションでは、同じ名前で 2 つ以上のオブジェクトを宣言する必要がある場合があります。 、その後、それらを異なる名前空間に置くことができます (ただし、インターフェイスは同じである必要があります)。
翻訳者注: この記事は PHPbuilder からのものです。上記のテキストから、PHP5 にいくつかの優れた新機能が追加されたことを嬉しく思います。また、PHP5 はまだ正式にリリースされていませんが、PHP 愛好家全員にさらなる驚きをもたらすことを期待しています。この側面に興味のある友人は、PHP 公式ニュース グループにログインして更新情報を知ることができます。ニュース グループのアドレスは、news://news.php.net です。Web インターフェイス http://news.php.net にログインしてアクセスすることもできます。新しいバージョンのリリースを楽しみに待ちましょう。 :) (Beyond PHP Avenger)
注: この記事はオリジナル記事であり、著作権は記事の著者および Beyond PHP Web サイトに帰属し、このサイトの許可なく商業的に複製することは禁止されています。非営利サイトや個人サイトに転載する場合は出典を明記してください

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

MySQL.proc テーブルの役割と機能の詳細な説明。MySQL は人気のあるリレーショナル データベース管理システムです。開発者が MySQL を使用する場合、多くの場合、ストアド プロシージャ (StoredProcedure) の作成と管理が必要になります。 MySQL.proc テーブルは非常に重要なシステム テーブルであり、ストアド プロシージャの名前、定義、パラメータなど、データベース内のすべてのストアド プロシージャに関連する情報が保存されます。この記事では、MySQL.proc テーブルの役割と機能について詳しく説明します。

Vue の使い方と機能.use Function Vue は、多くの便利な機能を提供する人気のフロントエンド フレームワークです。その 1 つは Vue.use 関数で、これを使用すると Vue アプリケーションでプラグインを使用できるようになります。この記事では、Vue.use 関数の使い方と機能を紹介し、いくつかのコード例を示します。 Vue.use 関数の基本的な使用法は非常に簡単です。Vue がインスタンス化される前に関数を呼び出し、使用するプラグインをパラメータとして渡すだけです。簡単な例を次に示します。 // プラグインの導入と使用
