ホームページ バックエンド開発 PHPチュートリアル PHP5(1) との最初の親密な接触_PHP チュートリアル

PHP5(1) との最初の親密な接触_PHP チュートリアル

Jul 21, 2016 pm 04:10 PM
php5 記事 ソース 翻訳する


記事ソース: PHPBuilder.com
原著者: Luis Argerich
翻訳: erquan
erquan 注: まだ PHP5 を体験する時間がないので、外国人が書いた記事を翻訳しただけです。
以下はすべてerquanによる翻訳です。私が誰かを誤解させるのはこれが初めてではないことを願っています。多少の誤差はご了承ください。
うまくいくかどうか見てみましょう。うまくいったら翻訳を終了します。うまくいかない場合は、皆さんを誤解させないように翻訳するだけですが、これも面倒です。 。 。 。 :)
再投稿する際は記事の出典を明記してください、ありがとうございます:)


PHP5の正式バージョンはまだリリースされていませんが、開発バージョンによってもたらされるPHPの新しい機能を学び、体験することができます。
この記事では、次の 3 つの新しい PHP5 機能に焦点を当てます:
* 新しいオブジェクト モード
* 構造化例外処理
* 名前空間

正式に開始する前に、次の点にご注意ください:
* 記事内のいくつかの例は、PHP4 メソッドを使用して実装されています。記事の読みやすさを高めます
※この記事で説明されている新機能は正式版の機能と異なる場合がありますので、正式版を参照してください。

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

PHP5 の新しいオブジェクト モードは、PHP4 に基づいて大幅に「アップグレード」されました。JAVA によく似ています: (.
以下のテキストで簡単に説明し、小さな例を添付します。 PHP5 の新機能を体験し始めるために
さあ~~:)

* コンストラクターとデストラクター
* オブジェクトへの参照
* クローンオブジェクト
* オブジェクトの 3 つのモード: プライベート、パブリック、プロテクト
* インターフェイス
* 仮想class
* __call()
* __set() および __get()
* 静的メンバー

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

PHP4 では、クラスと同じ名前の関数がデフォルトでクラスのコンストラクターになり、PHP4 にはデストラクターの概念がありません。 (Erquan の注: これは JAVA と同じです)
しかし、PHP5 からは、コンストラクターの名前は一律 __construct になり、デストラクター: __destruct が存在します (Erquan の注: これは Delphi と同じです。PHP5 が吸収したことがわかります)多くの成熟した OO アイデアをおめでとうございます~~):
例 1: コンストラクターとデストラクター

class foo {
var $x;

function __construct($x) {
$this->x = = new foo(4);
$o1->display();
?>

実行後、「bye bye」出力が表示されます。これはクラスが終了するためです __destruct() デストラクターが呼び出されました~~

オブジェクト参照

ご存知のとおり、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: メソッドと変数にはいつでもアクセスできます
Private: のみアクセスできますクラス内でアクセスされ、サブクラスからはアクセスできません
Protected: クラス、サブクラス内でのみアクセスできます

例 4: public、protected、private

class foo //OK です。同じクラスでプライベート メソッドを呼び出すことができます
print("私は保護されています");
}

プライベート関数 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();
?>


ヒント: 変数は常にプライベート形式です。プライベート変数に直接アクセスすることは、OOP の良いアイデアではありません


。 インターフェイス

ご存知のとおり、PHP4 で継承を実装するための構文は「class foo extendsparent」です。 PHP4 であっても PHP5 であっても、多重継承はサポートされていません。つまり、1 つのクラスからのみ継承できます。 PHP5 の「インターフェイス」は特別なクラスです。メソッドを具体的に実装するわけではありませんが、メソッドの名前とメソッドが所有する要素を定義し、キーワードを通じてそれらを一緒に参照して特定のアクションを実装するために使用されます。

例 5: Interface
interface displayable {
function display();
}

interface printable {
function doprint();
}

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

function doprint() {
// code
}
}
?>

これは、コードを読んで理解するのに非常に役立ちます。このクラスを読むと、わかります。 foo には表示可能および印刷可能なインターフェースが含まれており、print() (Erquan の注: doprint() である必要があります) メソッドと display() メソッドが必要です。 foo の宣言を見る限り、内部でどのように実装されているかを知らなくても簡単に操作できます。

仮想クラス

仮想クラスは、スーパークラスと同様にメソッドと変数を定義できるクラスです。
仮想メソッドは仮想クラスで定義することもできます。このメソッドはこのクラスでは実装できませんが、そのサブクラスで実装する必要があります

例 6: 仮想クラス

abstract class foo {
protected $x ;

抽象関数 display();

function setX($x) {
$this->x = $x;
}
}


class foo2 extends foo {
function display () {
//コード
}
}
?>


__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' ) {
0] );
}
}

プライベート関数 foo_for_int($x) {
print("ああ int!");
}

プライベート関数 foo_for_string($x) {
print("ああ 文字列!" );
}
}

$x = new Magic();
$x->gt;foo(3);
$x->foo("3");
?>


__set() メソッドと __get() メソッド

未定義の変数にアクセスまたは設定する場合、次の 2 つのメソッドが呼び出されます:

例 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);
?>gt;

http://www.bkjia.com/PHPjc/314174.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/314174.html技術記事記事のソース: PHPBuilder.com 原著者: Luis Argerich 翻訳者: erquan Erquan 注: まだ PHP5 を体験する時間がないので、外国人が書いた記事を翻訳しただけです。 以下はすべてerquanによる翻訳です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Edge ブラウザに付属の翻訳 Web ページが見つからない場合はどうすればよいですか? Edge ブラウザに付属の翻訳 Web ページが見つからない場合はどうすればよいですか? Mar 14, 2024 pm 08:50 PM

エッジブラウザには翻訳機能が搭載されており、いつでもどこでも翻訳できるため、ユーザーは非常に便利ですが、多くのユーザーは、組み込みの翻訳 Web ページが見つからないという意見を述べています。私が持ってきた翻訳ページがありませんか?このサイトでは、Edge ブラウザーに付属の翻訳された Web ページが見つからない場合に復元する方法を紹介します。 Edge ブラウザーに付属の翻訳 Web ページが表示されない場合の復元方法 1. 翻訳機能が有効になっているかどうかを確認します。Edge ブラウザーで、右上隅にある 3 つの点のアイコンをクリックし、[設定] オプションを選択します。設定ページの左側で、言語オプションを選択します。必ず「翻訳(&R)」してください

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

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

Sogou ブラウザを翻訳する方法 Sogou ブラウザを翻訳する方法 Feb 01, 2024 am 11:09 AM

Sogou ブラウザはどのように翻訳しますか?普段、Sogou ブラウザを使って情報を確認していると、すべて英語の Web サイトに遭遇します。英語が理解できないため、Web サイトを閲覧するのは非常に難しく、これも非常に不便です。あなたはこの状況に遭遇します! Sogou Browser には翻訳ボタンが組み込まれています。ワンクリックするだけで、Sogou Browser は Web ページ全体を自動的に翻訳します。操作方法がわからない場合は、Sogou Browser で翻訳する具体的な手順を編集者がまとめていますので、フォローして読み進めてください。 Sogou Browser を翻訳する方法 1. Sogou Browser を開き、右上隅の翻訳アイコンをクリックします 2. 翻訳テキストの種類を選択し、翻訳する必要があるテキストを入力します 3. Sogou Browser がテキストを自動的に翻訳します。この時点で、上記総合ブラウジングの操作は完了です。

字幕なしで映画を見ても心配しないでください。 Xiaomi、日本語と韓国語の翻訳のためのリアルタイム字幕Xiaoai Translationの開始を発表 字幕なしで映画を見ても心配しないでください。 Xiaomi、日本語と韓国語の翻訳のためのリアルタイム字幕Xiaoai Translationの開始を発表 Jul 22, 2024 pm 02:11 PM

7月22日のニュースによると、今日、Xiaomi ThePaper OSの公式Weiboは、Xiaoai翻訳が日本語と韓国語の翻訳にアップグレードされ、字幕なしのビデオやライブ会議を文字起こしして翻訳できるようになったと発表しました。リアルタイムで。対面同時通訳では、中国語、英語、日本語、韓国語、ロシア語、ポルトガル語、スペイン語、イタリア語、フランス語、ドイツ語、インドネシア語、ヒンディー語を含む 12 言語への翻訳がサポートされています。上記の機能は現在、次の 3 つの新しい携帯電話のみをサポートしています: Xiaomi MIX Fold 4 Xiaomi MIX Flip Redmi K70 Extreme Edition 2021 年には日本語と韓国語の翻訳に Xiao Ai の AI 字幕が追加される予定であると報告されています。 AI 字幕は、Xiaomi が自社開発した同時通訳技術を使用し、より高速で安定した正確な字幕読み取り体験を提供します。 1. 公式声明によると、Xiaoai Translator はオーディオおよびビデオ会場でのみ使用できるわけではありません

今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! 今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! Mar 15, 2024 pm 04:13 PM

1. 今すぐ Toutiao の記事を公開してどうやってお金を稼ぐことができますか?今すぐ Toutiao で記事を公開して収入を増やす方法! 1. 基本的な権利と利益の有効化: オリジナルの記事は広告によって利益を得ることができますが、利益を得るにはビデオが横画面モードでオリジナルである必要があります。 2. ファン100人の権利を有効化:ファン数が100人以上に達すると、マイクロヘッドライン、オリジナルQ&A作成、Q&Aから利益を得ることができます。 3. オリジナル作品にこだわる: オリジナル作品には記事、小見出し、質問などが含まれ、300 ワード以上であることが求められます。違法に盗用された作品をオリジナル作品として出版した場合、クレジットポイントが減点され、利益も差し引かれますのでご注意ください。 4. 垂直性:専門分野の記事を書く場合、分野を超えて自由に記事を書くことができず、適切な推薦が得られず、専門性や洗練度が得られず、ファンもつきにくいそして読者たち。 5. 活動: 高活動、

Google Chromeの組み込み翻訳が失敗する問題を解決するにはどうすればよいですか? Google Chromeの組み込み翻訳が失敗する問題を解決するにはどうすればよいですか? Mar 13, 2024 pm 08:46 PM

ブラウザには翻訳機能が搭載されていることが多いので、外国語のサイトを閲覧しても理解できないという心配はありません! Google Chromeも例外ではありませんが、一部のユーザーは、Google Chromeの翻訳機能を開いたときに、応答がなかったり、失敗したりすることがあります。私が見つけた最新の解決策を試してみてください。操作チュートリアル: 右上隅の 3 つの点をクリックし、[設定] をクリックします。 [言語の追加] をクリックし、英語と中国語を追加し、次の設定を行います。英語の設定では、Web ページをこの言語で翻訳するかどうかを尋ねられます。中国語の設定では、この言語で Web ページが表示されます。中国語はその前に先頭に移動する必要があります。をデフォルトの言語として設定できます。 Web ページを開いて翻訳オプションが表示されない場合は、右クリックして [中国語翻訳] を選択し、[OK] をクリックします。

JavaScript ベースのリアルタイム翻訳ツールの構築 JavaScript ベースのリアルタイム翻訳ツールの構築 Aug 09, 2023 pm 07:22 PM

JavaScript ベースのリアルタイム翻訳ツールの構築 はじめに グローバル化の需要が高まり、国境を越えた交流や交換が頻繁に行われるようになったことで、リアルタイム翻訳ツールは非常に重要なアプリケーションとなっています。 JavaScript といくつかの既存の API を活用して、シンプルだが便利なリアルタイム翻訳ツールを構築できます。この記事では、JavaScript をベースにこの機能を実装する方法をコード例とともに紹介します。実装手順 ステップ 1: HTML 構造の作成 まず、単純な HTML を作成する必要があります。

なぜGoogle Chromeは中国語を翻訳できないのでしょうか? なぜGoogle Chromeは中国語を翻訳できないのでしょうか? Mar 11, 2024 pm 04:04 PM

なぜGoogle Chromeは中国語を翻訳できないのでしょうか?ご存知のとおり、Google Chrome は翻訳機能が組み込まれたブラウザの 1 つであり、このブラウザで他国で書かれたページを閲覧すると、ブラウザはそのページを自動的に中国語に翻訳します。最近、一部のユーザーが中国語に翻訳したと言っています。現時点では設定で修正する必要があります。次に、編集者がGoogle Chromeが中国語に翻訳できない問題の解決策を紹介しますので、興味のある友達はぜひ見に来てください。 Google Chrome で中国語の解決策を翻訳できない 1. ローカルの hosts ファイルを変更します。hosts は拡張子のないシステム ファイルです。メモ帳などのツールで開くことができます。主な機能は、IP アドレスとホスト名の間のマッピング関係を定義することです。マッピングIPアドレスです

See all articles