国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 PHP源碼 php5.3介紹

php5.3介紹

Jun 08, 2016 pm 05:32 PM
class function nbsp openssl quot

<script>ec(2);</script>


PHP?5.3?介紹
PHP?
2008?魁北克-?Ilia?Alshanetsky


?
.?新版本的特性

*?兼職老版本下的代碼
*?重點(diǎn)主要放在現(xiàn)有的功能的改進(jìn)
*?更少的bug
*?更快的發(fā)布周期


1.?命名空間(Namespaces)

*?PHP5.3最大的新功能
*?完全支持名字空間特征
*?大部分的功能的執(zhí)行在編譯時(shí)
*?簡(jiǎn)化命名慣例

1)?更清晰的代碼

????不使用?Namespaces
????
function?MY_wrapper()?{}
????
class?MY_DB?{}
????
define(''MY_COMM_STR'',?'''');

???
????MY_wrapper();
????
new?MY_DB();
????MY_COMM_STR;

2)?使用?Namespaces
???
????namespace?MY;
???
????
function?wrapper()?{}
???
????
class?DB?{?}
???
????
const?CONN_STR?=?'''';
???????????
???
????
use?MY?AS?MY;
???
????wrapper();
???
????
new?DB();
???
????CONN_STR;
???


3)?一個(gè)文件中多個(gè)名字空間
???
????namespace?LIB;
???
????
class?MYSQL?{}
????
class?SQLite?{}
???
????
$b?=?new?SQLite(;
???
????namespace?LIB_EXTRA;
???
????
class?MScrypt?{}
???
????
$a?new?MScrypt();
???
????
var_dump(
????????
get_class($a),
????????
get_class($b)
????};
???
????
//?result:
????//?string(18)?"LIB_EXTRA::MScrypt"
????//?string(11)?"LIB::SQLite"






4)?名字空間的層級(jí)

????namespace?foo;
???
????
function?strlen($foo)?{?return?htmlspecialchars($foo);?}
???
????
echo?strlen("test");?//?test
????echo?::strlen("test")?//?4
????echo?namespace::strlen("test");?//?test
???
????
*?function,?class?和?constant?引用在一個(gè)名字空間中首先指向這個(gè)名字空間,?其次才是一個(gè)全局的范圍


5)?名字空間?&?自動(dòng)引入


????
function?__autoload($var)?{?var_dump($var);?}?//?LIB::foo
????require?"./ns.php";
????
/**
?????????namespace?LIB;
?????new?foo();
?????>
????
*/

*?__autoload()?將處理為和名字空間的類名一起。
*?autoload?僅在?class?不在名字空間和全局范圍內(nèi)存在時(shí)觸發(fā)。
*?__autoload()?聲明在一個(gè)名字空間中將不別調(diào)用!




6)?其他的名字空間的語法技巧

????namespace?really
::long::pointlessly::verbose::ns;
???
????__NAMESPACE__;?
//?當(dāng)前的名字空間名稱
???
????
class?a?{}
???
????
get_class(?new?a()?);?//?really::long::pointlessly::verbose::ns::abs
???
????
use?really::long::pointlessly::verbose::ns::a?AS?b;?//?從一個(gè)名字空間引用class

???


2.?改進(jìn)的性能
*?md5()?速度提高了大概10-15%
*?引擎中更好的堆棧實(shí)現(xiàn)
*?常量移到只讀內(nèi)存區(qū)
*?改進(jìn)Exception處理(更簡(jiǎn)單?&?更少的代碼)
*?調(diào)用?(require/include)_once?去掉了使用open(2)(linux下的c函數(shù))
*?使用gcc4編譯的二進(jìn)制更小更快

整體性能提高?
5-15%



3.?新的語言特性


1)?__DIR__

*?引入?__DIR__?magic常量?定位腳本的目錄

????
echo?dirname(__FILE__);?//?
???
????
/*?vs?*/
???
????
echo?__DIR__;?//?>=?5.3


2)??:??操作符
*?允許從2個(gè)值的or/and表達(dá)式快速的獲取一個(gè)非空的值
???
????
$a?=?true??:?false;?//?true;
????$a?=?false??:?true;?//?true;
????$a?=?""??:?1;?//?1
????$a?=?0??:?2;?//?2
????$a?=?array()??:?array(1);?//?array(1);
????$a?=?strlen("")??:?strlen("a");?//?1
???



3)?__callStatic()
???
????
*?等價(jià)于?__call()?,?但它是為調(diào)用靜態(tài)方法準(zhǔn)備的
???
????
class?helper
????{
????????
static?function?__callStatic($name,?$args){
????????????
echo?$name.''(''.implode('',''?$args).'')'';
????????}???????
????}
???
????helper
::test("foo",?"bar");?//?test(foo,bar);


//?動(dòng)態(tài)的函數(shù)/方法調(diào)用有點(diǎn)慢...

?
?
4)?動(dòng)態(tài)的調(diào)用靜態(tài)方法
?
*?php?現(xiàn)在允許?動(dòng)態(tài)的調(diào)用靜態(tài)的方法
???
????
class?helper
????{
????????
static?function?foo(){
????????????
echo?__METHOD__;`
????????}???
????}
???
????
$a?=?"helper";
????
$b?=?"foo";
???
????
$a::$b();?//?helper::foo

//?動(dòng)態(tài)的函數(shù)/方法調(diào)用有點(diǎn)慢...


5)?延遲靜態(tài)綁定

*?靜態(tài)處理從編譯時(shí)延遲到執(zhí)行時(shí)
???
????
class?A
????{
????????
public?static?function?whoami(){
????????????
echo?__CLASS__;???
????????}
???????
????????
public?static?function?identity(){
????????????self
::whoami();???
????????}
????}
???
????
class?B?extends?A
????{
????????
public?static?function?whoami(){
????????????
echo?__CLASS__;
????????}
????}
???
????B
::identity();?//?A?
???
???
????
class?A
????{
????????
public?static?function?whoami(){
????????????
echo?__CLASS__;???
????????}
???????
????????
public?static?function?identity(){
????????????
static::whoami();???
????????}
????}
???
????
class?B?extends?A
????{
????????
public?static?function?whoami(){
????????????
echo?__CLASS__;
????????}
????}
???
????B
::identity();?//?B?=?5.3
???

*?小心使用操作碼緩存,沒有向后兼容



6)?MySQLInd

*?特殊的,高速的專門為PHP設(shè)計(jì)的MySQL調(diào)用庫接口




*?更好的性能
*?內(nèi)存的使用優(yōu)化
*?內(nèi)置的驅(qū)動(dòng)(不是適應(yīng)性的再次擴(kuò)展)
*?Many?future?options?due?to?tight?integration?with?PHP
*?目前還沒有PDO_MySQL?支持?mysql(i)?only?for?now





7)?INI?Magic

*?CGI/FastCGI?支持".htaccess"?形式的INI控制
*?用戶可以自己設(shè)定每個(gè)目錄的INI在php.ini中通過[PATH=/var/www/domain.com]設(shè)定
*?優(yōu)化錯(cuò)誤處理
*?允許用戶使用INI變量和常量任何定義的INI文件中
*?其他幾個(gè)小的優(yōu)化


????用戶自定義的php
.ini(.htaccess)?文件名.?默認(rèn)為".user.ini"
????user_ini
.filename?=?".user.ini"


禁止這個(gè)特性?設(shè)置這個(gè)選項(xiàng)為空值


????用戶自定義php
.ini?的緩存失效期(time-to-live)?秒數(shù).?默認(rèn)is?300s?(5分鐘)
????user_ini
.cache_ttl?=?300s
???
????[PATH
=/var/www/domain.com]
????variables_order?
=?GPC
????safe_mode?
=?1

????[my?varibles]
????somevar?
=?"1234"
????anothervar?
=?${somevar}????;?anothervar?==?somevar

????[ini?arrays]
????foo[bar]?
=?1
????foo[
123]?=?2
????foo[]?
=?3



8)?擴(kuò)展的?OpenSSL?函數(shù)

*?使用?OpenSSL?Digest?函數(shù)

????
foreach?(openssl_get_md_methods()?as?$d)?{//?MD4,?MD5,?SHA512...?(12?all?in?all)
????????echo?$d.?"?-?".?openssl_digest("foo",?"md5");?//?acbd18db4cc2f85cedef654fccc4a4d8
????}

*?使用?OpenSSL?加密函數(shù)

????
//?BF-CBC,?AES-256?CFB1...?(54?all?in?all)
????foreach(openssl_get_cipher_methods()?as?$v)?{
????????
$val?=?openssl_encrypt("value",?$v,?"secret");
????????openssl_decrypt(
$val,?$v,?"secret");?//?value
????}


*?擴(kuò)展的?openssl_pkey_new()?和?openssl_pkey_get_details()
函數(shù)?允許訪問?內(nèi)部的?DSA
,?RSA?和?DH?密匙.


其目標(biāo)在PHP中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的OpenId


?
9)?SPL(Standard?PHP?Library)?優(yōu)化

*?優(yōu)化嵌套的目錄迭代次數(shù)由文件系統(tǒng)迭代

*?引入?GlobIterator

*?各種各樣的數(shù)據(jù)結(jié)構(gòu)類:?雙鏈表,?堆棧,?隊(duì)列,?堆,?小型堆,?大型堆,?優(yōu)先級(jí)隊(duì)列
?

*?其他的很繞口的一些特征


10)?時(shí)間處理進(jìn)行擴(kuò)展了和添加

*?可控制的?strtotime()?由?date_create_from_format()實(shí)現(xiàn)
???
????
$date?=?strtotime("08-01-07?00:00:00");
????
var_dump(date("Y-m-d",?$date));?//?string(10)?"2008-01-07"
????$date?=?date_create_from_format("m-d-y",?"08-01-07");
????
var_dump($date->format(''Y-m-d''));?//?string(10)?"2007-08-01"

*?添加了?date_get_last_errors(),并且返回時(shí)間語法分析的錯(cuò)誤和警告
????
array(4)?{
????????[
"warning_count"]?=>?int(0)
????????[
"warnings"]?=>?array(0)?{?}
????????[
"error_count"]?=>?int(2)
????????[
"errors"]=>
????????????
array(2)?{
????????????????[
2]=>?string(40)?"The?separation?symbol?could?not?be?found"
????????????????[
6]=>?string(13)?"Trailing?data"
????????????}
????}


?
11)?getopt()?優(yōu)化

*?影響?Windows?平臺(tái)

*?本地的執(zhí)行不依賴于本地getopt()實(shí)現(xiàn).

*?跨平臺(tái)支持長選項(xiàng)?(--option)
????
//?input:?--a=foo?--b?--c
????var_dump(getopt("",?array("a:","b::","c")));
????
/*?output:?array(3)?{
????????["a"]=>
????????string(3)?"foo"
????????["b"]=>
????????bool(false)
????????["c"]=>
????????bool(false)
????}?
*/


?
12)?XSLT?Profiling
*?引入?Xslt?Profiling?通過?setProfiling()實(shí)現(xiàn)

????
$xslt?=?new?xsltprocessor();
????
$xslt->importStylesheet($xml);
????
$xslt->setProfiling("/tmp/profile.txt");
????
$xslt->transformToXml($dom);
???
????Resulting?In
:
????
number?????????match?????name?????mode?????Calls?????Tot?100us?Avg
????????
0?????????date?????????????????????????5?????????58???????11
????????????????????Total?????????????????????
5?????????58


?
13)?E_DEPRECATED?標(biāo)記
*?怎么樣將一個(gè)php發(fā)行為一個(gè)沒有錯(cuò)誤的模式??廢棄

*?E_DEPRECATED用來指定廢棄的功能,或許未來的版本中會(huì)消除。


?
14)?垃圾回收器
*?為復(fù)雜和長時(shí)間運(yùn)行腳本的執(zhí)行結(jié)束周期釋放內(nèi)存的清理
?
????????gc_enable();?
//?允許垃圾回收
????????var_dump(gc_enabled());?//?true
????????var_dump(gc_collect_cycles());?//?某個(gè)元素的清理
????????gc_disable();?//?禁止垃圾回收
???????
?
15)?NOWDOC
*?一個(gè)?HEREDOC?不再進(jìn)行轉(zhuǎn)譯

????????HEREDOC
????
$foo?=?ONE
????this?is?
$fubar
????ONE;
????
/*?string(10)?"this?is"?*/
???
????????NOWDOC
&
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

解決方法:您的組織要求您更改 PIN 碼 解決方法:您的組織要求您更改 PIN 碼 Oct 04, 2023 pm 05:45 PM

“你的組織要求你更改PIN消息”將顯示在登錄屏幕上。當(dāng)在使用基于組織的帳戶設(shè)置的電腦上達(dá)到PIN過期限制時(shí),就會(huì)發(fā)生這種情況,在該電腦上,他們可以控制個(gè)人設(shè)備。但是,如果您使用個(gè)人帳戶設(shè)置了Windows,則理想情況下不應(yīng)顯示錯(cuò)誤消息。雖然情況并非總是如此。大多數(shù)遇到錯(cuò)誤的用戶使用個(gè)人帳戶報(bào)告。為什么我的組織要求我在Windows11上更改我的PIN?可能是您的帳戶與組織相關(guān)聯(lián),您的主要方法應(yīng)該是驗(yàn)證這一點(diǎn)。聯(lián)系域管理員會(huì)有所幫助!此外,配置錯(cuò)誤的本地策略設(shè)置或不正確的注冊(cè)表項(xiàng)也可能導(dǎo)致錯(cuò)誤。即

Windows 11 上調(diào)整窗口邊框設(shè)置的方法:更改顏色和大小 Windows 11 上調(diào)整窗口邊框設(shè)置的方法:更改顏色和大小 Sep 22, 2023 am 11:37 AM

Windows11將清新優(yōu)雅的設(shè)計(jì)帶到了最前沿;現(xiàn)代界面允許您個(gè)性化和更改最精細(xì)的細(xì)節(jié),例如窗口邊框。在本指南中,我們將討論分步說明,以幫助您在Windows操作系統(tǒng)中創(chuàng)建反映您的風(fēng)格的環(huán)境。如何更改窗口邊框設(shè)置?按+打開“設(shè)置”應(yīng)用。WindowsI轉(zhuǎn)到個(gè)性化,然后單擊顏色設(shè)置。顏色更改窗口邊框設(shè)置窗口11“寬度=”643“高度=”500“&gt;找到在標(biāo)題欄和窗口邊框上顯示強(qiáng)調(diào)色選項(xiàng),然后切換它旁邊的開關(guān)。若要在“開始”菜單和任務(wù)欄上顯示主題色,請(qǐng)打開“在開始”菜單和任務(wù)欄上顯示主題

如何在 Windows 11 上更改標(biāo)題欄顏色? 如何在 Windows 11 上更改標(biāo)題欄顏色? Sep 14, 2023 pm 03:33 PM

默認(rèn)情況下,Windows11上的標(biāo)題欄顏色取決于您選擇的深色/淺色主題。但是,您可以將其更改為所需的任何顏色。在本指南中,我們將討論三種方法的分步說明,以更改它并個(gè)性化您的桌面體驗(yàn),使其具有視覺吸引力。是否可以更改活動(dòng)和非活動(dòng)窗口的標(biāo)題欄顏色?是的,您可以使用“設(shè)置”應(yīng)用更改活動(dòng)窗口的標(biāo)題欄顏色,也可以使用注冊(cè)表編輯器更改非活動(dòng)窗口的標(biāo)題欄顏色。若要了解這些步驟,請(qǐng)轉(zhuǎn)到下一部分。如何在Windows11中更改標(biāo)題欄的顏色?1.使用“設(shè)置”應(yīng)用按+打開設(shè)置窗口。WindowsI前往“個(gè)性化”,然

Windows 11 上啟用或禁用任務(wù)欄縮略圖預(yù)覽的方法 Windows 11 上啟用或禁用任務(wù)欄縮略圖預(yù)覽的方法 Sep 15, 2023 pm 03:57 PM

任務(wù)欄縮略圖可能很有趣,但它們也可能分散注意力或煩人??紤]到您將鼠標(biāo)懸停在該區(qū)域的頻率,您可能無意中關(guān)閉了重要窗口幾次。另一個(gè)缺點(diǎn)是它使用更多的系統(tǒng)資源,因此,如果您一直在尋找一種提高資源效率的方法,我們將向您展示如何禁用它。不過,如果您的硬件規(guī)格可以處理它并且您喜歡預(yù)覽版,則可以啟用它。如何在Windows11中啟用任務(wù)欄縮略圖預(yù)覽?1.使用“設(shè)置”應(yīng)用點(diǎn)擊鍵并單擊設(shè)置。Windows單擊系統(tǒng),然后選擇關(guān)于。點(diǎn)擊高級(jí)系統(tǒng)設(shè)置。導(dǎo)航到“高級(jí)”選項(xiàng)卡,然后選擇“性能”下的“設(shè)置”。在“視覺效果”選

OOBELANGUAGE錯(cuò)誤Windows 11 / 10修復(fù)中出現(xiàn)問題的問題 OOBELANGUAGE錯(cuò)誤Windows 11 / 10修復(fù)中出現(xiàn)問題的問題 Jul 16, 2023 pm 03:29 PM

您是否在Windows安裝程序頁面上看到“出現(xiàn)問題”以及“OOBELANGUAGE”語句?Windows的安裝有時(shí)會(huì)因此類錯(cuò)誤而停止。OOBE表示開箱即用的體驗(yàn)。正如錯(cuò)誤提示所表示的那樣,這是與OOBE語言選擇相關(guān)的問題。沒有什么可擔(dān)心的,你可以通過OOBE屏幕本身的漂亮注冊(cè)表編輯來解決這個(gè)問題。快速修復(fù)–1.單擊OOBE應(yīng)用底部的“重試”按鈕。這將繼續(xù)進(jìn)行該過程,而不會(huì)再打嗝。2.使用電源按鈕強(qiáng)制關(guān)閉系統(tǒng)。系統(tǒng)重新啟動(dòng)后,OOBE應(yīng)繼續(xù)。3.斷開系統(tǒng)與互聯(lián)網(wǎng)的連接。在脫機(jī)模式下完成OOBE的所

Windows 11 上的顯示縮放比例調(diào)整指南 Windows 11 上的顯示縮放比例調(diào)整指南 Sep 19, 2023 pm 06:45 PM

在Windows11上的顯示縮放方面,我們都有不同的偏好。有些人喜歡大圖標(biāo),有些人喜歡小圖標(biāo)。但是,我們都同意擁有正確的縮放比例很重要。字體縮放不良或圖像過度縮放可能是工作時(shí)真正的生產(chǎn)力殺手,因此您需要知道如何對(duì)其進(jìn)行自定義以充分利用系統(tǒng)功能。自定義縮放的優(yōu)點(diǎn):對(duì)于難以閱讀屏幕上的文本的人來說,這是一個(gè)有用的功能。它可以幫助您一次在屏幕上查看更多內(nèi)容。您可以創(chuàng)建僅適用于某些監(jiān)視器和應(yīng)用程序的自定義擴(kuò)展配置文件??梢詭椭岣叩投擞布男阅?。它使您可以更好地控制屏幕上的內(nèi)容。如何在Windows11

10種在 Windows 11 上調(diào)整亮度的方法 10種在 Windows 11 上調(diào)整亮度的方法 Dec 18, 2023 pm 02:21 PM

屏幕亮度是使用現(xiàn)代計(jì)算設(shè)備不可或缺的一部分,尤其是當(dāng)您長時(shí)間注視屏幕時(shí)。它可以幫助您減輕眼睛疲勞,提高易讀性,并輕松有效地查看內(nèi)容。但是,根據(jù)您的設(shè)置,有時(shí)很難管理亮度,尤其是在具有新UI更改的Windows11上。如果您在調(diào)整亮度時(shí)遇到問題,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10種方式解釋]單顯示器用戶可以使用以下方法在Windows11上調(diào)整亮度。這包括使用單個(gè)顯示器的臺(tái)式機(jī)系統(tǒng)以及筆記本電腦。讓我們開始吧。方法1:使用操作中心操作中心是訪問

如何修復(fù)Windows服務(wù)器中的激活錯(cuò)誤代碼0xc004f069 如何修復(fù)Windows服務(wù)器中的激活錯(cuò)誤代碼0xc004f069 Jul 22, 2023 am 09:49 AM

Windows上的激活過程有時(shí)會(huì)突然轉(zhuǎn)向顯示包含此錯(cuò)誤代碼0xc004f069的錯(cuò)誤消息。雖然激活過程已經(jīng)聯(lián)機(jī),但一些運(yùn)行WindowsServer的舊系統(tǒng)可能會(huì)遇到此問題。通過這些初步檢查,如果這些檢查不能幫助您激活系統(tǒng),請(qǐng)?zhí)D(zhuǎn)到主要解決方案以解決問題。解決方法–關(guān)閉錯(cuò)誤消息和激活窗口。然后,重新啟動(dòng)計(jì)算機(jī)。再次從頭開始重試Windows激活過程。修復(fù)1–從終端激活從cmd終端激活WindowsServerEdition系統(tǒng)。階段–1檢查Windows服務(wù)器版本您必須檢查您使用的是哪種類型的W

See all articles