1.Hypertxt Processing:超文本預(yù)處理工具
2.用途:第一顾彰,服務(wù)端腳本极阅。需要三部分,web服務(wù)器涨享,web瀏覽器筋搏,PHP解釋器(CGI或服務(wù)器模 ? ? ? ? ? ? ? ? ? ? ? ? ?塊)。
? ? ? ? ? ? ?第二厕隧,命令行腳本拆又。直接使用PHP解釋器儒旬。常用于cron(Linux)或Task Scheduler執(zhí)行日 ? ? ? ? ? ? ? ? ? ? ? 常腳本。
? ? ? ? ? ? ?第三帖族,編寫(xiě)桌面應(yīng)用程序栈源。PHPGTK。
3.FPM(FastCGI 進(jìn)程管理器)用于替換 PHP FastCGI 的大部分附加功能竖般,對(duì)于高負(fù)載網(wǎng)站是非常有用的甚垦。
? ? 特性: 第一,支持平滑的停止/啟動(dòng)的高級(jí)進(jìn)程管理功能涣雕;
? ? ? ? ? ? ? ? 第二艰亮,可以工作于不同的 uid/gid/chroot 環(huán)境下,并監(jiān)聽(tīng)不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的設(shè)置)挣郭;
? ? ? ? ? ? ? ? 第三迄埃,發(fā)生意外情況的時(shí)候能夠重新啟動(dòng)并緩存被破壞的 opcode;
? ? ? ? ? ? ? ? 第四,動(dòng)態(tài)/靜態(tài)子進(jìn)程產(chǎn)生兑障;
4.PECL :
? ? ? pear打包的PHP擴(kuò)展庫(kù)倉(cāng)庫(kù)侄非。擴(kuò)展庫(kù)名字是extname。
5.建立PECL共享庫(kù):
? ? ? 法一流译,PEAR編譯共享庫(kù)逞怨,使用PECL命令。?
? ? ? 法二福澡,phpize編譯叠赦。phpize是準(zhǔn)備php編譯環(huán)境的。
6.php-config
? ? ?是一個(gè)簡(jiǎn)單的命令行腳本革砸,用于獲取php配置信息
7.配置文件 php.ini
? ? ? php.ini在php啟動(dòng)時(shí)讀取除秀,對(duì)于服務(wù)器模塊的php,僅在web服務(wù)器啟動(dòng)時(shí)讀取算利。而對(duì)于CGI和CLI模式下册踩,每次調(diào)用都讀取。
8. 如果文件內(nèi)容是純 PHP 代碼笔时,最好在文件末尾刪除 PHP 結(jié)束標(biāo)記棍好。這可以避免在 PHP 結(jié)束標(biāo)記之后萬(wàn)一意外加入了空格或者換行符,會(huì)導(dǎo)致 PHP 開(kāi)始輸出這些空白允耿,而腳本中此時(shí)并無(wú)輸出的意圖借笙。
9.如果在HTML中嵌入PHP腳本
? ? ?要輸出大段文本時(shí),跳出 PHP 解析模式通常比將文本通過(guò)echo或print輸出更有效率较锡。
10.php變量類型:
? ? ?整型业稼,布爾,浮點(diǎn)蚂蕴,字符串四種標(biāo)量類型低散。
? ? ?array俯邓,object兩種復(fù)合類型。
? ? ?null熔号,resource兩種資源類型稽鞭。
? ? ?變量的類型通常不是由程序員設(shè)定的,確切地說(shuō)引镊,是由 PHP 根據(jù)該變量使用的上下文在運(yùn)行時(shí)決定的朦蕴。
? ? ? 如果想查看某個(gè)表達(dá)式的值和類型,用var_dump()函數(shù)弟头。
? ? ? ? 如果只是想得到一個(gè)易讀懂的類型的表達(dá)方式用于調(diào)試吩抓,用gettype()函數(shù)。要查看某個(gè)類型赴恨,不要用gettype()疹娶,而用is_type函數(shù)。
? ? ? ? ? 如果要將一個(gè)變量強(qiáng)制轉(zhuǎn)換為某類型伦连,可以對(duì)其使用強(qiáng)制轉(zhuǎn)換或者settype()函數(shù)雨饺。
11.boolean
? ? ? 當(dāng)轉(zhuǎn)換為boolean時(shí),以下值被認(rèn)為是FALSE:
? ? ? 布爾值FALSE本身
? ? ? ?整型值 0(零)
? ? ? ?浮點(diǎn)型值 0.0(零)
? ? ? ? 不包括任何元素的數(shù)組
? ? ? 不包括任何成員變量的對(duì)象(僅 PHP 4.0 適用)
? ? ? 特殊類型NULL(包括尚未賦值的變量)
? ? ? ? 從空標(biāo)記生成的SimpleXML對(duì)象
? ? ? 所有其它值都被認(rèn)為是TRUE(包括任何資源)沛膳。
12.Integer
? ? ? PHP_INT_SIZE:表示整數(shù)字長(zhǎng)扔枫。
? ? ? PHP_INT_MAX:表示整數(shù)最大值汛聚。不同平臺(tái)值是不一樣的。
? ? ? 整數(shù)溢出:
? ? ? 如果給定的一個(gè)數(shù)超出了integer的范圍短荐,將會(huì)被解釋為float倚舀。同樣如果執(zhí)行的運(yùn)算結(jié)果超出了integer范圍,也會(huì)返回float忍宋。
? ? ? ?當(dāng)從浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)時(shí)痕貌,將向下取整。round()四舍五入.
13.浮點(diǎn)數(shù)
? ? ? NaN
? ? ? 某些數(shù)學(xué)運(yùn)算會(huì)產(chǎn)生一個(gè)由常量NAN所代表的結(jié)果糠排。此結(jié)果代表著一個(gè)在浮點(diǎn)數(shù)運(yùn)算中未定義或不可表述的值舵稠。任何拿此值與其它任何值進(jìn)行的松散或嚴(yán)格比較的結(jié)果都是FALSE。由于NAN代表著任何不同值入宦,不應(yīng)拿NAN去和其它值進(jìn)行比較哺徊,包括其自身,應(yīng)該用is_nan()來(lái)檢查乾闰。
? ? ? 所以永遠(yuǎn)不要相信浮點(diǎn)數(shù)結(jié)果精確到了最后一位落追,也永遠(yuǎn)不要比較兩個(gè)浮點(diǎn)數(shù)是否相等。如果確實(shí)需要更高的精度涯肩,應(yīng)該使用任意精度數(shù)學(xué)函數(shù)或者gmp 函數(shù)轿钠。
14.字符串
? ? 1>表示方式:?jiǎn)我?hào)巢钓,雙引號(hào),heredoc疗垛,newdoc症汹。
? ? 2>heredoc ,類似于雙引號(hào)字符串贷腕。結(jié)束時(shí)所引用的標(biāo)識(shí)符必須在該行的第一列烈菌,而且,標(biāo)識(shí)符的命名也要像其它標(biāo)簽一樣遵守 PHP 的規(guī)則:只能包含字母花履、數(shù)字和下劃線芽世,并且必須以字母和下劃線作為開(kāi)頭。?要注意的是結(jié)束標(biāo)識(shí)符這行除了可能有一個(gè)分號(hào)(;)外诡壁,絕對(duì)不能包含其它字符济瓢。這意味著標(biāo)識(shí)符不能縮進(jìn),分號(hào)的前后也不能有任何空白或制表符妹卿。更重要的是結(jié)束標(biāo)識(shí)符的前面必須是個(gè)被本地操作系統(tǒng)認(rèn)可的換行旺矾,而結(jié)束定界符(可能其后有個(gè)分號(hào))之后也必須緊跟一個(gè)換行。
? ? 3>newdoc類似于單引號(hào)字符串夺克。一個(gè) nowdoc 結(jié)構(gòu)也用和 heredocs 結(jié)構(gòu)一樣的標(biāo)記<<<箕宙, 但是跟在后面的標(biāo)識(shí)符要用單引號(hào)括起來(lái),即<<<'EOT'铺纽。Heredoc 結(jié)構(gòu)的所有規(guī)則也同樣適用于 nowdoc 結(jié)構(gòu)柬帕,尤其是結(jié)束標(biāo)識(shí)符的規(guī)則。
? ? 4>用花括號(hào){和}把它括起來(lái)即可狡门。由于{無(wú)法被轉(zhuǎn)義陷寝,只有$緊挨著{時(shí)才會(huì)被識(shí)別
? ? 5>存取和修改字符串中的字符. ??string中的字符可以通過(guò)一個(gè)從 0 開(kāi)始的下標(biāo),用類似array結(jié)構(gòu)中的方括號(hào)包含對(duì)應(yīng)的數(shù)字來(lái)訪問(wèn)和修改其馏,比如$str[42]凤跑。可以把string當(dāng)成字符組成的array叛复。函數(shù)substr()和substr_replace()可用于操作多于一個(gè)字符的情況仔引。Note:string也可用花括號(hào)訪問(wèn),比如$str{42}褐奥。
? ? ? ? ? 用超出字符串長(zhǎng)度的下標(biāo)寫(xiě)入將會(huì)拉長(zhǎng)該字符串并以空格填充咖耘。非整數(shù)類型下標(biāo)會(huì)被轉(zhuǎn)換成整數(shù)。非法下標(biāo)類型會(huì)產(chǎn)生一個(gè)E_NOTICE級(jí)別錯(cuò)誤抖僵。用負(fù)數(shù)下標(biāo)寫(xiě)入字符串時(shí)會(huì)產(chǎn)生一個(gè)E_NOTICE級(jí)別錯(cuò)誤鲤看,用負(fù)數(shù)下標(biāo)讀取字符串時(shí)返回空字符串。寫(xiě)入時(shí)只用到了賦值字符串的第一個(gè)字符耍群。用空字符串賦值則賦給的值是 NULL 字符义桂。
? ? 6>一個(gè)值可以通過(guò)在其前面加上(string)或用strval()函數(shù)來(lái)轉(zhuǎn)變成字符串找筝。
? ? ? ? 在一個(gè)需要字符串的表達(dá)式中,會(huì)自動(dòng)轉(zhuǎn)換為string慷吊。比如在使用函數(shù)echo或print時(shí)袖裕,或在一個(gè)變量和一個(gè)string進(jìn)行比較時(shí),就會(huì)發(fā)生這種轉(zhuǎn)換溉瓶。
? ? ? ? ?一個(gè)布爾值boolean的TRUE被轉(zhuǎn)換成string的"1"急鳄。Boolean的FALSE被轉(zhuǎn)換成""(空字符串)
? ? ? ? ? 數(shù)組array總是轉(zhuǎn)換成字符串"Array"。NULL總是被轉(zhuǎn)變成空字符串堰酿。
? ? ? ? ?該字符串的開(kāi)始部分決定了它的值疾宏。如果該字符串以合法的數(shù)值開(kāi)始,則使用該數(shù)值触创。否則其值為 0(零)坎藐。合法數(shù)值由可選的正負(fù)號(hào),后面跟著一個(gè)或多個(gè)數(shù)字(可能有小數(shù)點(diǎn))哼绑,再跟著可選的指數(shù)部分岩馍。指數(shù)部分由 'e' 或 'E' 后面跟著一個(gè)或多個(gè)數(shù)字構(gòu)成
7.數(shù)組
? ? 1>此外key會(huì)有如下的強(qiáng)制轉(zhuǎn)換:
? ? ? ?包含有合法整型值的字符串會(huì)被轉(zhuǎn)換為整型。例如鍵名"8"實(shí)際會(huì)被儲(chǔ)存為8抖韩。但是"08"則不會(huì)強(qiáng)制轉(zhuǎn)換蛀恩,因?yàn)槠洳皇且粋€(gè)合法的十進(jìn)制數(shù)值。
? ? ? ? 浮點(diǎn)數(shù)也會(huì)被轉(zhuǎn)換為整型茂浮,意味著其小數(shù)部分會(huì)被舍去双谆。例如鍵名8.7實(shí)際會(huì)被儲(chǔ)存為8。
? ? ? ? 布爾值也會(huì)被轉(zhuǎn)換成整型励稳。即鍵名true實(shí)際會(huì)被儲(chǔ)存為1而鍵名false會(huì)被儲(chǔ)存為0佃乘。
? ? ? ? Null會(huì)被轉(zhuǎn)換為空字符串囱井,即鍵名null實(shí)際會(huì)被儲(chǔ)存為""驹尼。
? ? ? ? 數(shù)組和對(duì)象不能被用為鍵名。堅(jiān)持這么做會(huì)導(dǎo)致警告:Illegal offset type庞呕。
? ? ? ? ?2>注意這里所使用的最大整數(shù)鍵名不一定當(dāng)前就在數(shù)組中新翎。它只要在上次數(shù)組重新生成索引后曾經(jīng)存在過(guò)就行了。unset數(shù)組后索引并不從0開(kāi)始住练。
? ? ? ? ? 3>轉(zhuǎn)為數(shù)組
? ? ? ? ? ? 對(duì)于任意integer地啰,float,string讲逛,boolean和resource類型亏吝,如果將一個(gè)值轉(zhuǎn)換為數(shù)組,將得到一個(gè)僅有一個(gè)元素的數(shù)組盏混,其下標(biāo)為 0蔚鸥,該元素即為此標(biāo)量的值惜论。如果一個(gè)object類型轉(zhuǎn)換為array,則結(jié)果為一個(gè)數(shù)組止喷,其單元為該對(duì)象的屬性馆类。鍵名將為成員變量名,不過(guò)有幾點(diǎn)例外:整數(shù)屬性不可訪問(wèn)弹谁;私有變量前會(huì)加上類名作前綴乾巧;保護(hù)變量前會(huì)加上一個(gè) '*' 做前綴。這些前綴的前后都各有一個(gè) NULL 字符预愤。這會(huì)導(dǎo)致一些不可預(yù)知的行為沟于。將NULL轉(zhuǎn)換為array會(huì)得到一個(gè)空的數(shù)組。?
? ? ? ? ? ? ?數(shù)組(Array)的賦值總是會(huì)涉及到值的拷貝植康。注意這點(diǎn)社裆。
8.對(duì)象。
? ? ? ?如果將一個(gè)對(duì)象轉(zhuǎn)換成對(duì)象向图,它將不會(huì)有任何變化泳秀。如果其它任何類型的值被轉(zhuǎn)換成對(duì)象,將會(huì)創(chuàng)建一個(gè)內(nèi)置類stdClass的實(shí)例榄攀。如果該值為NULL嗜傅,則新的實(shí)例為空。數(shù)組轉(zhuǎn)換成對(duì)象將使鍵名成為屬性名并具有相對(duì)應(yīng)的值檩赢。對(duì)于任何其它的值吕嘀,名為scalar的成員變量將包含該值。
9.資源
? ? ? ? ?一種特殊變量贞瞒,保存了到外部資源的一個(gè)引用偶房。資源是通過(guò)專門(mén)的函數(shù)來(lái)建立和使用的。
? ? ? ? 轉(zhuǎn)換資源:由于資源類型變量保存有為打開(kāi)文件军浆、數(shù)據(jù)庫(kù)連接棕洋、圖形畫(huà)布區(qū)域等的特殊句柄,因此將其它類型的值轉(zhuǎn)換為資源沒(méi)有意義乒融。
? ? ? ? 釋放資源:由于 PHP 4 Zend 引擎引進(jìn)了引用計(jì)數(shù)系統(tǒng)掰盘,可以自動(dòng)檢測(cè)到一個(gè)資源不再被引用了(和 Java 一樣)。這種情況下此資源使用的所有外部資源都會(huì)被垃圾回收系統(tǒng)釋放赞季。因此愧捕,很少需要手工釋放內(nèi)存。
10.NULL
? ? ? ?使用(unset) $var將一個(gè)變量轉(zhuǎn)換為null將不會(huì)刪除該變量或 unset 其值申钩。僅是返回NULL值而已次绘。