Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara php5.2 dan 5.3

Apakah perbezaan antara php5.2 dan 5.3

王林
王林asal
2021-09-27 14:24:123029semak imbas

Perbezaan antara php5.2 dan 5.3 ialah: 1. php5.3 telah meninggalkan fungsi seperti Register Globals dan Magic Quotes 2. Menambahkan kaedah ajaib baharu __invoke() dan __callStatic(); pemalar dengan const.

Apakah perbezaan antara php5.2 dan 5.3

Persekitaran pengendalian artikel ini: sistem windows10, php 5.2&&php 5.3, komputer thinkpad t480.

Ramai rakan mungkin tidak tahu perbezaan antara php 5.2 dan php 5.3. Mari kita lihat dengan lebih dekat perbezaan antara kedua-dua versi ini dan apakah perbezaan spesifiknya. Mari kita lihat bersama-sama.

Mari kita lihat versi php 5.2 dahulu.

php5.2(2006-2011)

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

Kemudian mari kita lihat versi php 5.3.

php5.3(2009-2012)

PHP5.3 ialah kemas kini yang sangat besar, menambahkan banyak ciri baharu dan juga membuat beberapa pengubahsuaian yang tidak serasi ke belakang lihatlah.

1. Ciri ditamatkan

Ciri berikut ditamatkan jika didayakan dalam fail konfigurasi, PHP akan mengeluarkan amaran pada masa jalan.

Register Globals
Magic Quotes
Safe Mode

2. Fungsi tanpa nama

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

3 Menambahkan kaedah ajaib __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 tidak sempurna, hanya menyokong kelas

5 Pengikatan statik lewat

6 Heredoc dan Nowdoc

Membuat beberapa penambahbaikan pada Heredoc dan Nowdoc, kedua-duanya menggunakan Digunakan untuk membenamkan rentetan besar. dalam kod PHP.

7. Gunakan const untuk menentukan pemalar

Bermula dari PHP 5.3, ia disokong untuk menggunakan const untuk mentakrifkan pemalar dalam ruang nama dan kelas global.

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

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

8. Singkatan pengendali ternary

Gaya lama:

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

boleh disingkatkan sebagai:

echo $a ?: “No Value”;

iaitu jika Ditinggalkan bahagian kedua pengendali ternary akan lalai kepada bahagian pertama.

9.Phar

Phar ialah Arkib PHP pada asalnya hanya perpustakaan dalam Pear Ia kemudiannya ditulis semula sebagai sambungan C dalam PHP5.3 dan dibina ke dalam PHP.

Phar digunakan untuk membungkus berbilang skrip .php (juga boleh membungkus fail lain) ke dalam fail mampat .phar (biasanya dalam format ZIP).

Tujuannya adalah untuk meniru .jar Java, tidak, tujuannya adalah untuk menjadikan penerbitan aplikasi PHP lebih mudah. Ia juga menyediakan fungsi seperti pengesahan tandatangan digital.

Fail .phar boleh ditafsir dan dilaksanakan oleh enjin PHP sama seperti fail .php Pada masa yang sama, anda juga boleh menulis kod seperti ini untuk memasukkan (memerlukan) kod dalam .phar:

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

Pembelajaran yang disyorkan: latihan php

Atas ialah kandungan terperinci Apakah perbezaan antara php5.2 dan 5.3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn