PHP編程經常容易記亂的知識,PHP編程知識
PHP經常容易記亂的知識
1.echo和print的區別
PHP中echo和print的功能基本相同(輸出),但是兩者之間還是有細微差別的。echo輸出後沒有傳回值,但print有傳回值,當其執行失敗時返回flase。因此可以作為一個普通函數來使用,例如執行下面的代碼後變數$r的值將為1。
$r = print "Hello World";
這意味著print可用在一些複雜的運算式中,而echo則不行。但是,因為echo語句不要求返回任何數值,所已在代碼中echo語句的運行效率要略微快於print語句。
2.include與require的區別
include()與require()的功能也基本相同(包含),但在用法上也有一些不同,include()是有條件包含函數,而require()則是無條件包含函數。例如在下面代碼中,如果變數$a為真,則將包含檔案a.php:
if($a){
include("a.php");
}
而require()則和include()不同,不管$a取何值,下面的代碼將把檔案a.php包含進檔案裡:
if($a){
require("a.php");
}
在錯誤處理方面,使用include語句,如果發生包含錯誤,程式將跳過include語句,雖然會顯示錯誤資訊但是程式還是會繼續執行!但requre卻會給你來個致命錯誤。
當然,從字面意思上我們也可以理解七分:requre是很強硬的請求、要求的意思。
3.require_once()和include_once()語句
題外話了,因為長的像,簡單require_once()和include_once()語句分別對應於require()和include()語句。require_once() 和include_once()語句主要用於需要包含多個檔案時,可以有效地避免把同一段程式碼封裝含進去而出現函數或變數重複定義的錯誤。
4.Null 字元串('')和NULL的區別
PHP中Null 字元串和NULL都是以值為0儲存的,但是他們的類型並不一樣,你可以試一下echo gettype('');和echo gettype(NULL);你會發現他們列印出來的分別是string和NULL,當然還有0也容易混淆,你可以試試echo gettype(0);列印一下類型,會發現0的類型是integer(整型),可見字串('')、NULL和0是“等值”但不等類型。
5.isset和 empty的區別
從字面意思上我們就可以明白:empty是判斷一個變數是否為“空”,而isset 則是判斷一個變數是否已經設定。但是這裡有一點絕對要注意起來:當一個變數值為0,empty 認為這個變數同等於空,即相當於沒有設定。比如當我們檢測$id 變數的時候,當$id=0 ,用empty和isset來檢測變數$id是否已經配置,兩都將返回不同的值:empty 認為沒有配置,isset 則能夠取得 $id 的值,看下邊例子:
$id=0;
empty($id)?print "我是空的":print "我是$id ."; //結果:我是空的
!isset($id)?print "我是空的":print "我是$id .";//結果:我是0
6.==(等)和===(恒等)的區別
回顧上面第四條Null 字元串("")和NULL的區別,再來看一個例子:
'' == NULL;
'' === NULL;
運行之後你會發現第一個為true,而第二個則為false!可見==只是比較值是否相等,而===則不但比較值,還會比較類型,更為嚴格。
7.self :: 和 this-> 的區別
在訪問PHP類中的成員變數或方法時,如果被引用的變數或者方法被聲明成const(定義常量)或者static(聲明靜態),那麼就必須使用操作符::,反之如果被引用的變數或者方法沒有被聲明成const或者static,那麼就必須使用操作符->。
另外,如果從類的內部訪問const或者static變數或者方法,那麼就必須使用自引用的self,反之如果從類的內部訪問不為const或者static變數或者方法,那麼就必須使用自引用的$this。
8.strstr() 與 strpos() 的區別
stristr() 不區分大小寫 strstr() 區分大小寫
函數尋找字串在另一個字串中第一次出現的位置。
如果成功,則返回字串的其餘部分(從匹配點)。如果沒有找到該字串,則返回 false。
stripos() 不區分大小寫 strpos() 區分大小寫
函數返回字串在另一個字串中第一次出現的位置。
如果沒有找到該字串,則返回 false。
經測試證明如果只是單純尋找判斷是否存在則strpos()的執行效率要大於strstr()
9.PHP中 HTTP_HOST 和 SERVER_NAME
相同點:
當滿足以下三個條件時,兩者會輸出相同資訊。
1. 伺服器為80連接埠
2. apache的conf中ServerName設定正確
3. HTTP/1.1協議規範
不同點:
1. 通常情況:
_SERVER["HTTP_HOST"] 在HTTP/1.1協議規範下,會根據用戶端的HTTP請求輸出資訊。
_SERVER["SERVER_NAME"] 預設情況下直接輸出apache的設定檔httpd.conf中的ServerName值。
2. 當伺服器為非80連接埠時:
_SERVER["HTTP_HOST"] 會輸出連接埠號碼,例如:mimiz.cn:8080
_SERVER["SERVER_NAME"] 會直接輸出ServerName值
因此在這種情況下,可以理解為:HTTP_HOST = SERVER_NAME : SERVER_PORT
3. 當設定檔httpd.conf中的ServerName與HTTP/1.0請求的網域名稱不一致時:
httpd.conf配置如下:
ServerName pprar.com
ServerAlias http://www.pprar.com
用戶端訪問網域名稱http://www.pprar.com
_SERVER["HTTP_HOST"] 輸出 http://www.pprar.com
_SERVER["SERVER_NAME"] 輸出 pprar.com
所以,在實際程式中,應盡量使用_SERVER["HTTP_HOST"] ,比較保險和可靠。
如果在連接埠映射的情況下,並且在內網訪問,用“$_SERVER['HTTP_X_FORWARDED_HOST']”比較好。
PHP編程入門容易?對於我這樣對編程一竅不通的人來說該怎快速入門可以夠建站?
對於有基礎的人 (比如大學很多人都學過C) PHP的確不難
PHP最開始開發出來的目的就是快速開發 不像Java那樣一堆架構
但對於你這種情況 完全沒接觸過進階程式設計語言
難的是入門 畢竟html css這樣的前端語言 跟進階語言比 差別還是非常大的
建議如果有條件 可以找周圍會的朋友稍微給你講下基礎的編程思想
變數啊 迴圈啊 以及數組啊 對象啊 函數啊 什麼的基礎知識
然後買本PHP入門 或者網上下載一本 看你習慣 跟著謝謝簡單的代碼
感覺基礎知識差不多後 下些規範的源碼 看看別人怎麼寫的代碼 上上技術論壇
然後再自己開始編寫自己的網站 就差不多了
更進步的發展就是以後的事情了 什麼面相對象 什麼設計模式 什麼架構 這都是基礎熟練後
進一步發展才用到的 開始不必在意
php編程中可以找到好的工作
你那是不行的,需要藉助php標籤,或者直接在php代碼中處理,給你個例子:
$result = mysql_query("SELECT * FROM treename WHERE treeID=1"); //此句sql文法有誤
$path = trim($result[1]);
$name = trim($result[2]);
$ext = trim($result[3]);
$picSrc = ""; //這個在你這有點多餘了,直接下面的就行了
$picSrc =$picSrc.$path.$name.$ext;
echo"";
?>
</td>
第二種:
$result = mysql_query("SELECT * FROM treename WHERE treeID=1"); //此句sql文法有誤
$path = trim($result[1]);
$name = trim($result[2]);
$ext = trim($result[3]);
$picSrc = ""; //這個在你這有點多餘了,直接下面的就行了
$picSrc =$picSrc.$path.$name.$ext;
?>
" width="500">
</td>
希望能給你起到拋磚引玉的效果!!
http://www.bkjia.com/PHPjc/896046.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/896046.htmlTechArticlePHP編程經常容易記亂的知識,PHP編程知識 PHP經常容易記亂的知識 1.echo和print的區別 PHP中echo和print的功能基本相同(輸出),但是兩者之間...