ホームページ  >  記事  >  バックエンド開発  >  php5.2と5.3の違いは何ですか

php5.2と5.3の違いは何ですか

王林
王林オリジナル
2021-09-27 14:24:123025ブラウズ

php5.2 と 5.3 の違いは次のとおりです: 1. php5.3 では、Register Globals や Magic Quotes などの関数が廃止されました; 2. 新しいマジック メソッド __invoke() および __callStatic() が追加されました; 3. 定義のサポートconst を使用した定数。

php5.2と5.3の違いは何ですか

#この記事の動作環境: Windows10 システム、php 5.2&&php 5.3、thinkpad t480 コンピューター。

多くの友人は php 5.2 と php 5.3 の違いを知らないかもしれません。これら 2 つのバージョンの違いを詳しく見てみましょう。具体的な違いを見てみましょう。

まず、php 5.2 バージョンを見てみましょう。

php5.2(2006-2011)

JSON的支持
       增加了json_encode(),json_decode()等函数

次に、php 5.3 バージョンを見てみましょう。

php5.3(2009-2012)

PHP5.3 は非常に大きなアップデートであり、多くの新機能が追加され、下位互換性のないいくつかの変更も加えられています。見てください。

1. 非推奨の機能

次の機能は非推奨となっており、設定ファイルで有効にすると、PHP は実行時に警告を発行します。

Register Globals
Magic Quotes
Safe Mode

2. 匿名関数

f u n c = f u n c t i o n ( func=function(func=function(arg){
echo $arg;
}
$func(‘hello’);

3. 新しいマジック メソッド __invoke()、__callStatic();

随着匿名函数的加入,PHP 引入了一个新的魔术方法 __invoke().
该魔术方法会在将一个对象作为函数调用时被调用:
class A
{
    public function __invoke($str)
    {
        print "A::__invoke(): {$str}";
    }
}

$a = new A;
$a("Hello World");
输出毫无疑问是:  A::__invoke(): Hello World

__callStatic() 则会在调用一个不存在的静态方法时被调用。

4. 名前空間ですが、完全ではなく、クラスのみをサポートします

5.後期静的バインディング

##6.Heredoc と Nowdoc

PHP コードに埋め込むために使用される Heredoc と Nowdoc にいくつかの改善が加えられました。

7. const を使用して定数を定義する

PHP5.3 以降、グローバル名前空間およびクラスで定数を定義するために const を使用することがサポートされています。

旧式风格:
define("XOOO", "Value");
新式风格:

const XXOO = "Value";
const 形式仅适用于常量,不适用于运行时才能求值的表达式:
// 正确
const XXOO = 1234;
// 错误
const XXOO = 2 * 617;
(在5.6版后可以了)

8. 三項演算子の省略形

旧形式:

echo $a ? $a : “No Value”;

は次のように省略できます:

echo $a ?: “No Value”;

つまり、三項演算子が省略された場合デフォルトでは、2 番目の部分は最初の部分に置き換えられます。

9.Phar

Phar は PHP アーカイブです。元々は Pear の単なるライブラリでしたが、後に PHP5.3 で C 拡張機能として書き直され、PHP に組み込まれました。

Phar は、複数の .php スクリプト (他のファイルもパッケージ化できます) を .phar 圧縮ファイル (通常は ZIP 形式) にパッケージ化するために使用されます。

目的は Java の .jar を模倣することです、いいえ、目的は PHP アプリケーションの公開をより便利にすることです。電子署名検証などの機能も提供します。

.phar ファイルは、.php ファイルと同様に、PHP エンジンによって解釈および実行できます。同時に、次のようなコードを記述して、.phar にコードを含める (必須にする) こともできます:

require(“xxoo.phar”);
require(“phar://xxoo.phar/xo/ox.php”);

推奨学習:

php トレーニング

以上がphp5.2と5.3の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。