ホームページ php教程 php手册 PHP5 との最初の親密な接触(1)

PHP5 との最初の親密な接触(1)

Jun 13, 2016 pm 12:45 PM
php5 記事 ソース 翻訳する


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


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

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

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

PHP5 の新しいオブジェクト モードは、PHP4 に基づいて大幅に「アップグレード」されています。JAVA によく似たものになります: (.
以下のテキストの一部で実現します。 、PHP5 の新機能を体験し始めるのに役立つ小さな例を示します
さあ~~:)

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

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

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

class foo {
var $ x;

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

関数 display() {
print($this ->x);
}

function __destruct() {
print("bye bye");
}
}

$o1 = 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("オーマイガッド!");
?>

( Erquan のメモ: あなたはそうするでしょう「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 では、変数とメソッドに対する
制御権限を制御するために 3 つのモードが挙げられています: Public (パブリック)、Protected (保護された)、および Private (プライベート)

パブリック: メソッドと変数はアクセス時にどこでも使用できます
プライベート: クラス内でのみアクセスでき、サブクラスからもアクセスできません
保護: クラスまたはサブクラス内でのみアクセスできます

例 4: パブリック、プロテクト、プライベート

class foo {
private $x;

public function public_foo() {
print("I'm public ");
}

protected function protected_foo() {
$this->private_foo(); //同じクラスにいるので、プライベート メソッドを呼び出すことができます
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(); public_foo();
//$x->protected_foo(); //無効なため、クラスおよび派生クラスの外で保護されたメソッドを呼び出すことはできません
//$x->private_foo (); //無効なプライベート メソッドクラス内でのみ使用できます

$x2 = new foo2();
$x2->display();
?>


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


を実装する必要があります。 インターフェース

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

例 5: インターフェイス
interface displayable {
function display();
}

interface printable {
function doprint( );
}

class foo は、displayable,printable を実装します {
function display() {
// code
}

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

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

仮想クラス

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

例 6: 仮想クラス

abstract class foo {
protected $x;

abstract function 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("電話しましたか? 私' m $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($ argument[0]);
}
}

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

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

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


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

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

例 9: __set と __get

< ?php
class foo {

function __set($name,$val) {
print("こんにちは、$name に $val を入れようとしました");
}

function __get($name) {
print("$name を要求しました");
}
}

$x = new foo ();
$x->bar = 3;
print($x->winky_winky);
?>>

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

なぜ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アドレスです

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

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

See all articles