記事ソース: 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;

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
