亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 php教程 php手冊(cè) PHP 高手之路(三)

PHP 高手之路(三)

Jun 21, 2016 am 09:15 AM
quot replace

使用str-replace而不是ereg-replace
習(xí)慣使用Perl進(jìn)行編程的程序員更加愿意使用ereg_replace完成字符串替換工作,因?yàn)樵赑HP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的這段代碼證明,使用str_replace 代替 ereg_replace將可以大大提高代碼的運(yùn)行速度。

測(cè)試str_replace和ereg_replace的運(yùn)行速度

//這段代碼測(cè)試str_replace的運(yùn)行速度


emphasis; ?>

for ($i=0; $i str_replace(i>, b>, $string).
;
}
?>

//這段代碼測(cè)試ereg_replace的運(yùn)行速度




for ($i=0; $i ereg_replace(, , $string).
;
}
?>






//打印結(jié)果


結(jié)論

使用str_replace的時(shí)間 -


使用ereg_pattern的時(shí)間 -
運(yùn)行上面的代碼,得到的結(jié)果是:
使用str_replace的時(shí)間 - 0.089757
使用ereg_pattern的時(shí)間 - 0.248881
從運(yùn)行的結(jié)果我們可以看出使用str_replace替代ereg_replace作為字符串替換函數(shù),極大地提高了代碼的運(yùn)行速度。
3.注意字符串的引用
PHP和其它很多編程語言一樣,可以使用雙引號(hào)("")來引用字符串,也可以使用單引號(hào)()。但是在PHP中,如果使用雙引號(hào)來引用字符串,那么PHP解析器將首先分析字符串中有沒有對(duì)變量的引用,有變量的話,將對(duì)變量進(jìn)行替換。如果是單引號(hào),則沒有如此復(fù)雜??直接將單引號(hào)包含起來的所有字符串直接顯示出來。顯然,在PHP編程中,如果使用單引號(hào)引用字符串變量要比使用雙引號(hào)快速一些。
4.在數(shù)據(jù)庫中避免使用聯(lián)合操作
比起其它的Web編程語言來說,PHP的數(shù)據(jù)庫功能十分強(qiáng)大。但是在PHP中數(shù)據(jù)庫的運(yùn)行仍然是一件十分費(fèi)時(shí)費(fèi)力的事情,所以,作為一個(gè)Web程序員,要盡量減少數(shù)據(jù)庫的查詢操作,同時(shí)應(yīng)該為數(shù)據(jù)庫建立適當(dāng)?shù)乃饕?。另一件值得注意的事情是在用PHP操作數(shù)據(jù)庫時(shí),盡可能不使用多個(gè)數(shù)據(jù)表的聯(lián)合操作,盡管聯(lián)合操作可以增強(qiáng)數(shù)據(jù)庫的查詢功能,但是卻大大增加了服務(wù)器的負(fù)擔(dān)。
為了說明這個(gè)問題,我們可以看看下面的這個(gè)簡(jiǎn)單的例子。
我們?cè)跀?shù)據(jù)庫中創(chuàng)建了兩個(gè)數(shù)據(jù)表foo和big_foo。在數(shù)據(jù)表foo中,只有一個(gè)字段,包含了從1-1000之間的所有自然數(shù)。數(shù)據(jù)表big_foo同樣只有一個(gè)字段,但包含了從1-1,000,000之間的全部自然數(shù)。所以,從大小上說,big_foo等于foo與它自身進(jìn)行了聯(lián)合操作。
$db->query("select * from foo");
0.032273 secs
$db->next_record();
0.00048999999999999 secs
$db->query("insert into foo values (NULL)");
0.019506 secs
$db->query("select * from foo as a, foo as b");
17.280596 secs
$db->query("select * from foo as a, foo as b where a.id > b.id");
14.645251 secs
$db->query("select * from foo as a, foo as b where a.id = b.id");
0.041269 secs
$db->query("select * from big_foo");
25.393672 secs
從上面操作結(jié)果我們可以發(fā)現(xiàn),對(duì)于兩個(gè)有1000條記錄的數(shù)據(jù)表進(jìn)行聯(lián)合,其速度并不比對(duì)一個(gè)1000000條紀(jì)錄的大型數(shù)據(jù)表單獨(dú)進(jìn)行操作快多少。
5.注意include與require的區(qū)別
在PHP變成中,include()與require()的功能相同,但在用法上卻有一些不同,include()是有條件包含函數(shù),而require()則是無條件包含函數(shù)。例如在下面的一個(gè)例子中,如果變量$somgthing為真,則將包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代碼將把文件somefile包含進(jìn)文件里:
if($something){
require("somefile");
}
下面的這個(gè)有趣的例子充分說明了這兩個(gè)函數(shù)之間的不同。
$i = 1;
while ($i require("somefile.$i");
$i++;
}
在這段代碼中,每一次循環(huán)的時(shí)候,程序都將把同一個(gè)文件包含進(jìn)去。很顯然這不是程序員的初衷,從代碼中我們可以看出這段代碼希望在每次循環(huán)時(shí),將不同的文件包含進(jìn)來。如果要完成這個(gè)功能,必須求助函數(shù)include():
$i = 1;
while ($i include("somefile.$i");
$i++;
}
6.注意echo和print的區(qū)別
PHP中echo和print的功能也基本相同,但是兩者之間也有細(xì)微差別。在PHP代碼中可以把print作為一個(gè)普通函數(shù)來使用,例如執(zhí)行下面的代碼后變量$res的值將為1。
$ret = print "Hello World";
這意味著print可用在一些復(fù)雜的表達(dá)式中,而echo則不行。同樣,在代碼中echo語句的運(yùn)行速度要略微快于print語句,因?yàn)閑cho語句不要求返回任何數(shù)值



本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)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脫衣器

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)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
MySQL中如何使用REPLACE函數(shù)取代字串中的指定部分 MySQL中如何使用REPLACE函數(shù)取代字串中的指定部分 Jul 25, 2023 pm 01:18 PM

MySQL是一種常用的關(guān)聯(lián)式資料庫管理系統(tǒng),它提供了多種函數(shù)來處理和操作資料。其中,REPLACE函數(shù)是用來替換字串中的指定部分內(nèi)容的。在本文中,將介紹如何在MySQL中使用REPLACE函數(shù)進(jìn)行字串替換,並透過程式碼範(fàn)例來示範(fàn)其用法。首先,我們來了解REPLACE函數(shù)的語法:REPLACE(str,search_str,replace_str)其

Python中的字串尋找和替換技巧有哪些? Python中的字串尋找和替換技巧有哪些? Oct 20, 2023 am 11:42 AM

Python中的字串尋找和替換技巧有哪些? (具體程式碼範(fàn)例)在Python中,字串是一種常見的資料類型,我們?cè)谌粘3淌皆O(shè)計(jì)中經(jīng)常會(huì)遇到字串的尋找和替換操作。本文將介紹一些常用的字串查找和替換技巧,並配以具體的程式碼範(fàn)例。尋找子字串在字串中尋找特定的子字串可以使用字串的find()方法或index()方法。 find()方法傳回子字串在字串中第一次出現(xiàn)的位置索

php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出,該如何解決 php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出,該如何解決 Jun 13, 2016 am 10:23 AM

php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出php提交表單通過后,彈出的對(duì)話框怎樣在當(dāng)前頁彈出而不是在空白頁彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code

Java中使用StringBuilder類別的replace()方法取代字串中的部分內(nèi)容 Java中使用StringBuilder類別的replace()方法取代字串中的部分內(nèi)容 Jul 24, 2023 pm 10:28 PM

Java中使用StringBuilder類別的replace()方法取代字串中的部分內(nèi)容在Java程式設(shè)計(jì)中,字串是一個(gè)非常重要的資料類型,經(jīng)常需要對(duì)字串進(jìn)行處理和操作。而有時(shí)我們需要替換字串中的一部分內(nèi)容,以滿足我們的需求。在Java中,可以使用StringBuilder類別的replace()方法來實(shí)作字串的替換操作。 StringBuilder是一個(gè)可

圖片消失怎么解決 圖片消失怎么解決 Apr 07, 2024 pm 03:02 PM

圖片消失如何解決先是圖片文件上傳$file=$_FILES['userfile']; ?if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

不用數(shù)據(jù)庫來實(shí)現(xiàn)用戶的簡(jiǎn)單的下載,代碼如下,但是卻不能下載,請(qǐng)高手找下原因,文件路勁什么的沒有關(guān)問題 不用數(shù)據(jù)庫來實(shí)現(xiàn)用戶的簡(jiǎn)單的下載,代碼如下,但是卻不能下載,請(qǐng)高手找下原因,文件路勁什么的沒有關(guān)問題 Jun 13, 2016 am 10:15 AM

不用數(shù)據(jù)庫來實(shí)現(xiàn)用戶的簡(jiǎn)單的下載,代碼如下,但是卻不能下載,請(qǐng)高手找下原因,文件路勁什么的沒問題。

圖片消失怎么解決 圖片消失怎么解決 Jun 13, 2016 am 10:09 AM

圖片消失如何解決先是圖片文件上傳$file=$_FILES['userfile']; ?if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

為什么小弟我在php上寫的這個(gè)代碼,在瀏覽器上什么都不顯示 為什么小弟我在php上寫的這個(gè)代碼,在瀏覽器上什么都不顯示 Jun 13, 2016 am 10:24 AM

為什么我在php上寫的這個(gè)代碼,在瀏覽器上什么都不顯示啊

See all articles