Jadual Kandungan
1、放弃对Windows XP和2003 的支持  
2.弃用e修饰符  
 3.新增函数和类  
4.一个简单的密码散列API  
5.新的语言特性和增强功能。  
6.调用empty()函数(和其他表达式)一起工作  
7.获取完整类别名称 
8.参数跳跃   
9.标量类型提示   
10.Getter 和 Setter   
11.生成器   
12.列表解析和生成器表达式   
13.finally关键字  
14.foreach 支持list()  
15.增加了opcache扩展  
16.非变量array和string也能支持下标获取了  
Rumah pembangunan bahagian belakang tutorial php PHP 5.5中的新特性及被弃用的功能函数总结

PHP 5.5中的新特性及被弃用的功能函数总结

Jun 20, 2016 pm 01:03 PM
fungsi php

PHP5.5新特性及与php5.4的区别总结
现在,让我们来看看PHP5.5 可能会新增的功能:   

1、放弃对Windows XP和2003 的支持  

2.弃用e修饰符  

e修饰符是指示preg_replace函数用来评估替换字符串作为PHP代码,而不只是仅仅做一个简单的字符串替换。不出所料,这种行为会源源不断的出现安全问题。这就是为什么在PHP5.5 中使用这个修饰符将抛出一个弃用警告。作为替代,你应该使用preg_replace_callback函数。你可以从RFC找到更多关于这个变化相应的信息。  

 3.新增函数和类  

boolval()  
PHP已经实现了strval、intval和floatval的函数。为了达到一致性将添加boolval函数。它完全可以作为一个布尔值计算,也可以作为一个回调函数。   
  
hash_pbkdf2()  
PBKDF2全称“Password-Based Key Derivation Function 2”,正如它的名字一样,是一种从密码派生出加密密钥的算法。这就需要加密算法,也可以用于对密码哈希。更广泛的说明和用法示例  
  
array_column()  

$userNames = array_column($users, 'name');  
// is the same as  
$userNames = [];  
foreach ($users as $user) {  
    $userNames[] = $user['name'];  
}  
Salin selepas log masuk

intl 扩展
将有许多改进 intl的扩展。例如,将会有新的IntlCalendar,IntlGregorianCalendar,IntlTimeZone,IntlBreakIterator,IntlRuleBasedBreakIterator,IntlCodePointBreakIterator类。之前,我竟然不知道有这么多关于intl扩展,如果你想知道更多,我建议你去最新公告里找 Calendar和 BreakIterator。

4.一个简单的密码散列API

$password = "foo";    
// creating the hash    
$hash = password_hash($password, PASSWORD_BCRYPT);    
// verifying a password    
if (password_verify($password, $hash)) {    
    // password correct!    
} else {    
    // password wrong!    
}   
Salin selepas log masuk

5.新的语言特性和增强功能。

常量引用
“常量引用”意味着数组可以直接操作字符串和数组字面值。举两个例子:

function randomHexString($length) {    
    $str = '';    
    for ($i = 0; $i < $length; ++$i) {    
        $str .= "0123456789abcdef"[mt_rand(0, 15)]; // direct dereference of string    
    }    
}    
function randomBool() {    
    return [false, true][mt_rand(0, 1)]; // direct dereference of array    
}   
Salin selepas log masuk


我不认为在实践中会使用此功能,但它使语言更加一致。请参阅 RFC。

6.调用empty()函数(和其他表达式)一起工作

目前,empty()语言构造只能用在变量,而不能在其他表达式。
在特定的代码像empty($this->getFriends())将会抛出一个错误。作为PHP5.5 这将成为有效的代码

7.获取完整类别名称

PHP5.3 中引入命名空间的别名类和命名空间短版本的功能。虽然这并不适用于字符串类名称

use Some\Deeply\Nested\Namespace\FooBar;    
// does not work, because this will try to use the global `FooBar` class    
$reflection = new ReflectionClass(&#39;FooBar&#39;);   
echo FooBar::class;  
Salin selepas log masuk


为了解决这个问题采用新的FooBar::class语法,它返回类的完整类别名称

8.参数跳跃

如果你有一个函数接受多个可选的参数,目前没有办法只改变最后一个参数,而让其他所有参数为默认值。
RFC上的例子,如果你有一个函数如下:

function create_query($where, $order_by, $join_type=&#39;&#39;, $execute = false, $report_errors = true) { ... }  
Salin selepas log masuk


那么有没有办法设置$report_errors=false,而其他两个为默认值。为了解决这个跳跃参数的问题而提出:

create_query("deleted=0", "name", default, default, false);  
Salin selepas log masuk


我个人不是特别喜欢这个提议。在我的眼睛里,代码需要这个功能,只是设计不当。函数不应该有12个可选参数。

9.标量类型提示

标量类型提示原本计划进入5.4,但由于缺乏共识而没有做。获取更多关于为什么标量类型提示没有做进PHP的信息,请参阅: 标量类型提示比你认为的更难。
对于PHP5.5 而言,针对标量类型提示讨论又一次出现,我认为这是一个相当不错的 提议。
它需要通过输入值来指定类型。例如:123,123.0,“123”都是一个有效的int参数输入,但“hello world”就不是。这与内部函数的行为一致。

function foo(int $i) { ... }  
foo(1);      // $i = 1  
foo(1.0);    // $i = 1  
foo("1");    // $i = 1  
foo("1abc"); // not yet clear, maybe $i = 1 with notice  
foo(1.5);    // not yet clear, maybe $i = 1 with notice  
foo([]);     // error  
foo("abc");  // error  
Salin selepas log masuk

10.Getter 和 Setter

如果你从不喜欢写这些getXYZ()和setXYZ($value)方法,那么这应该是你最受欢迎的改变。提议添加一个新的语法来定义一个属性的设置/读取:

<?php  
  
class TimePeriod {  
    public $seconds;  
  
    public $hours {  
        get { return $this->seconds / 3600; }  
        set { $this->seconds = $value * 3600; }  
    }  
}  
$timePeriod = new TimePeriod;  
$timePeriod->hours = 10;  
var_dump($timePeriod->seconds); // int(36000)  
var_dump($timePeriod->hours);   // int(10)  
Salin selepas log masuk


当然还有更多的功能,比如只读属性。如果你想要知道更多,请参阅 RFC。

11.生成器

目前,自定义迭代器很少使用,因为它们的实现,需要大量的样板代码。生成器解决这个问题,并提供了一种简单的样板代码来创建迭代器。
例如,你可以定义一个范围函数作为迭代器:

<?php  
function *xrange($start, $end, $step = 1) {  
    for ($i = $start; $i < $end; $i += $step) {  
        yield $i;  
    }  
}  
foreach (xrange(10, 20) as $i) {  
    // ...  
}  
Salin selepas log masuk


上述xrange函数具有与内建函数相同的行为,但有一点区别:不是返回一个数组的所有值,而是返回一个迭代器动态生成的值。

12.列表解析和生成器表达式

列表解析提供一个简单的方法对数组进行小规模操作:
$firstNames = [foreach ($users as $user) yield $user->firstName];
上述列表解析相等于下面的代码:

$firstNames = [];  
foreach ($users as $user) {  
    $firstNames[] = $user->firstName;  
}  
Salin selepas log masuk


也可以这样过滤数组:

$underageUsers = [foreach ($users as $user) if ($user->age < 18) yield $user];  
Salin selepas log masuk


生成器表达式也很类似,但是返回一个迭代器(用于动态生成值)而不是一个数组。

13.finally关键字

这个和java中的finally一样,经典的try ... catch ... finally 三段式异常处理。

14.foreach 支持list()

对于“数组的数组”进行迭代,之前需要使用两个foreach,现在只需要使用foreach + list了,但是这个数组的数组中的每个数组的个数需要一样。看文档的例子一看就明白了。

$array = [  
    [1, 2],  
    [3, 4],  
];  
foreach ($array as list($a, $b)) {  
    echo "A: $a; B: $b\n";  
}  
Salin selepas log masuk

15.增加了opcache扩展  

使用opcache会提高php的性能,你可以和其他扩展一样静态编译(--enable-opcache)或者动态扩展(zend_extension)加入这个优化项。  

16.非变量array和string也能支持下标获取了  

echo array(1, 2, 3)[0];  
echo [1, 2, 3][0];  
echo "foobar"[2];  


Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php? Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php? Oct 05, 2023 pm 12:13 PM

Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi PHP? Dengan perkembangan Internet, bilangan imej dalam halaman web semakin meningkat, yang memberi tekanan pada kelajuan memuatkan halaman. Untuk meningkatkan pengalaman pengguna dan mengurangkan masa pemuatan, kami boleh menggunakan teknologi pemuatan malas imej. Memuatkan imej yang malas boleh melambatkan pemuatan imej hanya dimuatkan apabila pengguna menatal ke kawasan yang boleh dilihat, yang boleh mengurangkan masa memuatkan halaman dan meningkatkan pengalaman pengguna. Apabila menulis halaman web PHP, kita boleh mengoptimumkan kesan pemuatan malas imej dengan menulis beberapa fungsi. Butiran di bawah

Bagaimana untuk mengurangkan penggunaan memori melalui fungsi php? Bagaimana untuk mengurangkan penggunaan memori melalui fungsi php? Oct 05, 2023 pm 01:45 PM

Bagaimana untuk mengurangkan penggunaan memori melalui fungsi PHP Dalam pembangunan, penggunaan memori adalah pertimbangan yang sangat penting. Jika sejumlah besar memori digunakan dalam atur cara, ia boleh menyebabkan kelembapan atau malah ranap program. Oleh itu, mengurus dan mengurangkan penggunaan memori secara munasabah adalah isu yang perlu diberi perhatian oleh setiap pembangun PHP. Artikel ini akan memperkenalkan beberapa kaedah untuk mengurangkan penggunaan memori melalui fungsi PHP, dan menyediakan contoh kod khusus untuk rujukan pembaca. Gunakan fungsi unset() untuk melepaskan pembolehubah dalam PHP Apabila pembolehubah tidak diperlukan lagi, gunakan

Pengenalan fungsi PHP—curl_multi_getcontent(): Dapatkan kandungan sesi cURL Pengenalan fungsi PHP—curl_multi_getcontent(): Dapatkan kandungan sesi cURL Jul 26, 2023 pm 03:01 PM

Pengenalan fungsi PHP—curl_multi_getcontent(): Dapatkan kandungan sesi cURL Dalam pembangunan PHP, kita selalunya perlu meminta data daripada pelayan lain melalui rangkaian. Dan cURL (ClientURL) ialah perpustakaan sambungan PHP yang berkuasa yang digunakan untuk komunikasi rangkaian dalam PHP. cURL menyediakan satu siri fungsi, salah satunya curl_multi_getcontent(), yang digunakan untuk mendapatkan kandungan sesi cURL.

PHP Dihentikan: Fungsi ereg_replace() ditamatkan - Penyelesaian PHP Dihentikan: Fungsi ereg_replace() ditamatkan - Penyelesaian Aug 18, 2023 am 10:48 AM

PHPDeprecated: Functionereg_replace()isdeprecated-Solution Apabila membangun dalam PHP, kita sering menghadapi masalah beberapa fungsi yang diisytiharkan tidak digunakan. Ini bermakna dalam versi PHP terkini, fungsi ini boleh dialih keluar atau diganti. Satu contoh biasa ialah fungsi ereg_replace(). ereg_replace

Sejauh manakah prestasi fungsi PHP? Sejauh manakah prestasi fungsi PHP? Apr 18, 2024 pm 06:45 PM

Prestasi fungsi PHP yang berbeza adalah penting untuk kecekapan aplikasi. Fungsi dengan prestasi yang lebih baik termasuk gema dan cetakan, manakala fungsi seperti str_replace, array_merge dan file_get_contents mempunyai prestasi yang lebih perlahan. Sebagai contoh, fungsi str_replace digunakan untuk menggantikan rentetan dan mempunyai prestasi sederhana, manakala fungsi sprintf digunakan untuk memformat rentetan. Analisis prestasi menunjukkan bahawa ia hanya mengambil masa 0.05 milisaat untuk melaksanakan satu contoh, membuktikan bahawa fungsi berfungsi dengan baik. Oleh itu, menggunakan fungsi dengan bijak boleh membawa kepada aplikasi yang lebih pantas dan cekap.

Ringkasan kaedah untuk melaksanakan fungsi penyuntingan dan pemprosesan imej menggunakan fungsi pemprosesan imej PHP Ringkasan kaedah untuk melaksanakan fungsi penyuntingan dan pemprosesan imej menggunakan fungsi pemprosesan imej PHP Nov 20, 2023 pm 12:31 PM

Fungsi pemprosesan imej PHP ialah satu set fungsi yang khusus digunakan untuk memproses dan mengedit imej Ia menyediakan pembangun dengan fungsi pemprosesan imej yang kaya. Melalui fungsi ini, pembangun boleh melaksanakan operasi seperti pemangkasan, penskalaan, putaran dan penambahan tera air pada imej untuk memenuhi keperluan pemprosesan imej yang berbeza. Pertama, saya akan memperkenalkan cara menggunakan fungsi pemprosesan imej PHP untuk mencapai fungsi pemangkasan imej. PHP menyediakan fungsi imagecrop(), yang boleh digunakan untuk memangkas imej. Dengan melepasi koordinat dan saiz kawasan pemangkasan, kita boleh memangkas imej

Persamaan dan perbezaan antara fungsi PHP dan fungsi Flutter Persamaan dan perbezaan antara fungsi PHP dan fungsi Flutter Apr 24, 2024 pm 01:12 PM

Perbezaan utama antara fungsi PHP dan Flutter ialah pengisytiharan, sintaks dan jenis pulangan. Fungsi PHP menggunakan penukaran jenis pulangan tersirat, manakala fungsi Flutter secara eksplisit menentukan jenis pulangan boleh menentukan parameter pilihan melalui ?, manakala fungsi Flutter menggunakan diperlukan dan [] untuk menentukan parameter yang diperlukan dan pilihan menggunakan = untuk lulus Parameter penamaan; Fungsi flutter menggunakan {} untuk menentukan parameter yang dinamakan.

Membandingkan fungsi PHP dengan fungsi dalam bahasa lain Membandingkan fungsi PHP dengan fungsi dalam bahasa lain Apr 10, 2024 am 10:03 AM

Fungsi PHP mempunyai persamaan dengan fungsi dalam bahasa lain, tetapi juga mempunyai beberapa ciri unik. Secara sintaksis, fungsi PHP diisytiharkan dengan fungsi, JavaScript diisytiharkan dengan fungsi, dan Python diisytiharkan dengan def. Dari segi parameter dan nilai pulangan, fungsi PHP menerima parameter dan mengembalikan nilai JavaScript dan Python juga mempunyai fungsi yang serupa, tetapi sintaksnya berbeza. Dari segi skop, fungsi dalam PHP, JavaScript dan Python semuanya mempunyai skop global atau tempatan Fungsi global boleh diakses dari mana-mana sahaja, dan fungsi tempatan hanya boleh diakses dalam skop pengisytiharan mereka.

See all articles