PHP入門

1.Hypertxt Processing:超文本預(yù)處理工具

2.用途:第一,服務(wù)端腳本。需要三部分,web服務(wù)器,web瀏覽器,PHP解釋器(CGI或服務(wù)器模 ? ? ? ? ? ? ? ? ? ? ? ? ?塊)。

? ? ? ? ? ? ?第二,命令行腳本。直接使用PHP解釋器。常用于cron(Linux)或Task Scheduler執(zhí)行日 ? ? ? ? ? ? ? ? ? ? ? 常腳本。

? ? ? ? ? ? ?第三,編寫桌面應(yīng)用程序。PHPGTK。

3.FPM(FastCGI 進(jìn)程管理器)用于替換 PHP FastCGI 的大部分附加功能,對于高負(fù)載網(wǎng)站是非常有用的。

? ? 特性: 第一,支持平滑的停止/啟動的高級進(jìn)程管理功能;

? ? ? ? ? ? ? ? 第二,可以工作于不同的 uid/gid/chroot 環(huán)境下,并監(jiān)聽不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的設(shè)置);

? ? ? ? ? ? ? ? 第三,發(fā)生意外情況的時候能夠重新啟動并緩存被破壞的 opcode;

? ? ? ? ? ? ? ? 第四,動態(tài)/靜態(tài)子進(jìn)程產(chǎn)生;

4.PECL :

? ? ? pear打包的PHP擴(kuò)展庫倉庫。擴(kuò)展庫名字是extname。

5.建立PECL共享庫:

? ? ? 法一,PEAR編譯共享庫,使用PECL命令。?

? ? ? 法二,phpize編譯。phpize是準(zhǔn)備php編譯環(huán)境的。

6.php-config

? ? ?是一個簡單的命令行腳本,用于獲取php配置信息

7.配置文件 php.ini

? ? ? php.ini在php啟動時讀取,對于服務(wù)器模塊的php,僅在web服務(wù)器啟動時讀取。而對于CGI和CLI模式下,每次調(diào)用都讀取。

8. 如果文件內(nèi)容是純 PHP 代碼,最好在文件末尾刪除 PHP 結(jié)束標(biāo)記。這可以避免在 PHP 結(jié)束標(biāo)記之后萬一意外加入了空格或者換行符,會導(dǎo)致 PHP 開始輸出這些空白,而腳本中此時并無輸出的意圖。

9.如果在HTML中嵌入PHP腳本

? ? ?要輸出大段文本時,跳出 PHP 解析模式通常比將文本通過echoprint輸出更有效率。

10.php變量類型:

? ? ?整型,布爾,浮點(diǎn),字符串四種標(biāo)量類型。

? ? ?array,object兩種復(fù)合類型。

? ? ?null,resource兩種資源類型。

? ? ?變量的類型通常不是由程序員設(shè)定的,確切地說,是由 PHP 根據(jù)該變量使用的上下文在運(yùn)行時決定的。

? ? ? 如果想查看某個表達(dá)式的值和類型,用var_dump()函數(shù)。

? ? ? ? 如果只是想得到一個易讀懂的類型的表達(dá)方式用于調(diào)試,用gettype()函數(shù)。要查看某個類型,不要gettype(),而用is_type函數(shù)。

? ? ? ? ? 如果要將一個變量強(qiáng)制轉(zhuǎn)換為某類型,可以對其使用強(qiáng)制轉(zhuǎn)換或者settype()函數(shù)。

11.boolean

? ? ? 當(dāng)轉(zhuǎn)換為boolean時,以下值被認(rèn)為是FALSE

? ? ? 布爾FALSE本身

? ? ? ?整型值 0(零)

? ? ? ?浮點(diǎn)型值 0.0(零)

? ? ? 空字符串,以及字符串"0"

? ? ? ? 不包括任何元素的數(shù)組

? ? ? 不包括任何成員變量的對象(僅 PHP 4.0 適用)

? ? ? 特殊類型NULL(包括尚未賦值的變量)

? ? ? ? 從空標(biāo)記生成的SimpleXML對象

? ? ? 所有其它值都被認(rèn)為是TRUE(包括任何資源)。

12.Integer

? ? ? PHP_INT_SIZE:表示整數(shù)字長。

? ? ? PHP_INT_MAX:表示整數(shù)最大值。不同平臺值是不一樣的。

? ? ? 整數(shù)溢出:

? ? ? 如果給定的一個數(shù)超出了integer的范圍,將會被解釋為float。同樣如果執(zhí)行的運(yùn)算結(jié)果超出了integer范圍,也會返回float。

? ? ? ?當(dāng)從浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)時,將向下取整。round()四舍五入.

13.浮點(diǎn)數(shù)

? ? ? NaN

? ? ? 某些數(shù)學(xué)運(yùn)算會產(chǎn)生一個由常量NAN所代表的結(jié)果。此結(jié)果代表著一個在浮點(diǎn)數(shù)運(yùn)算中未定義或不可表述的值。任何拿此值與其它任何值進(jìn)行的松散或嚴(yán)格比較的結(jié)果都是FALSE。由于NAN代表著任何不同值,不應(yīng)拿NAN去和其它值進(jìn)行比較,包括其自身,應(yīng)該用is_nan()來檢查。

? ? ? 所以永遠(yuǎn)不要相信浮點(diǎn)數(shù)結(jié)果精確到了最后一位,也永遠(yuǎn)不要比較兩個浮點(diǎn)數(shù)是否相等。如果確實需要更高的精度,應(yīng)該使用任意精度數(shù)學(xué)函數(shù)或者gmp 函數(shù)。

14.字符串

? ? 1>表示方式:單引號,雙引號,heredoc,newdoc。

? ? 2>heredoc ,類似于雙引號字符串。結(jié)束時所引用的標(biāo)識符必須在該行的第一列,而且,標(biāo)識符的命名也要像其它標(biāo)簽一樣遵守 PHP 的規(guī)則:只能包含字母、數(shù)字和下劃線,并且必須以字母和下劃線作為開頭。?要注意的是結(jié)束標(biāo)識符這行除了可能有一個分號(;)外,絕對不能包含其它字符。這意味著標(biāo)識符不能縮進(jìn),分號的前后也不能有任何空白或制表符。更重要的是結(jié)束標(biāo)識符的前面必須是個被本地操作系統(tǒng)認(rèn)可的換行,而結(jié)束定界符(可能其后有個分號)之后也必須緊跟一個換行。

? ? 3>newdoc類似于單引號字符串。一個 nowdoc 結(jié)構(gòu)也用和 heredocs 結(jié)構(gòu)一樣的標(biāo)記<<<, 但是跟在后面的標(biāo)識符要用單引號括起來,即<<<'EOT'。Heredoc 結(jié)構(gòu)的所有規(guī)則也同樣適用于 nowdoc 結(jié)構(gòu),尤其是結(jié)束標(biāo)識符的規(guī)則。

? ? 4>用花括號{}把它括起來即可。由于{無法被轉(zhuǎn)義,只有$緊挨著{時才會被識別

? ? 5>存取和修改字符串中的字符. ??string中的字符可以通過一個從 0 開始的下標(biāo),用類似array結(jié)構(gòu)中的方括號包含對應(yīng)的數(shù)字來訪問和修改,比如$str[42]??梢园?a target="_blank" rel="nofollow">string當(dāng)成字符組成的array。函數(shù)substr()substr_replace()可用于操作多于一個字符的情況。Note:string也可用花括號訪問,比如$str{42}。

? ? ? ? ? 用超出字符串長度的下標(biāo)寫入將會拉長該字符串并以空格填充。非整數(shù)類型下標(biāo)會被轉(zhuǎn)換成整數(shù)。非法下標(biāo)類型會產(chǎn)生一個E_NOTICE級別錯誤。用負(fù)數(shù)下標(biāo)寫入字符串時會產(chǎn)生一個E_NOTICE級別錯誤,用負(fù)數(shù)下標(biāo)讀取字符串時返回空字符串。寫入時只用到了賦值字符串的第一個字符。用空字符串賦值則賦給的值是 NULL 字符。

? ? 6>一個值可以通過在其前面加上(string)或用strval()函數(shù)來轉(zhuǎn)變成字符串。

? ? ? ? 在一個需要字符串的表達(dá)式中,會自動轉(zhuǎn)換為string。比如在使用函數(shù)echoprint時,或在一個變量和一個string進(jìn)行比較時,就會發(fā)生這種轉(zhuǎn)換。

? ? ? ? ?一個布爾值booleanTRUE被轉(zhuǎn)換成string"1"。BooleanFALSE被轉(zhuǎn)換成""(空字符串)

? ? ? ? ? 數(shù)組array總是轉(zhuǎn)換成字符串"Array"。NULL總是被轉(zhuǎn)變成空字符串。

? ? ? ? ?該字符串的開始部分決定了它的值。如果該字符串以合法的數(shù)值開始,則使用該數(shù)值。否則其值為 0(零)。合法數(shù)值由可選的正負(fù)號,后面跟著一個或多個數(shù)字(可能有小數(shù)點(diǎn)),再跟著可選的指數(shù)部分。指數(shù)部分由 'e' 或 'E' 后面跟著一個或多個數(shù)字構(gòu)成

7.數(shù)組

? ? 1>此外key會有如下的強(qiáng)制轉(zhuǎn)換:

? ? ? ?包含有合法整型值的字符串會被轉(zhuǎn)換為整型。例如鍵名"8"實際會被儲存為8。但是"08"則不會強(qiáng)制轉(zhuǎn)換,因為其不是一個合法的十進(jìn)制數(shù)值。

? ? ? ? 浮點(diǎn)數(shù)也會被轉(zhuǎn)換為整型,意味著其小數(shù)部分會被舍去。例如鍵名8.7實際會被儲存為8。

? ? ? ? 布爾值也會被轉(zhuǎn)換成整型。即鍵名true實際會被儲存為1而鍵名false會被儲存為0。

? ? ? ? Null會被轉(zhuǎn)換為空字符串,即鍵名null實際會被儲存為""。

? ? ? ? 數(shù)組和對象不能被用為鍵名。堅持這么做會導(dǎo)致警告:Illegal offset type

? ? ? ? ?2>注意這里所使用的最大整數(shù)鍵名不一定當(dāng)前就在數(shù)組中。它只要在上次數(shù)組重新生成索引后曾經(jīng)存在過就行了。unset數(shù)組后索引并不從0開始。

? ? ? ? ? 3>轉(zhuǎn)為數(shù)組

? ? ? ? ? ? 對于任意integer,float,stringbooleanresource類型,如果將一個值轉(zhuǎn)換為數(shù)組,將得到一個僅有一個元素的數(shù)組,其下標(biāo)為 0,該元素即為此標(biāo)量的值。如果一個object類型轉(zhuǎn)換為array,則結(jié)果為一個數(shù)組,其單元為該對象的屬性。鍵名將為成員變量名,不過有幾點(diǎn)例外:整數(shù)屬性不可訪問;私有變量前會加上類名作前綴;保護(hù)變量前會加上一個 '*' 做前綴。這些前綴的前后都各有一個 NULL 字符。這會導(dǎo)致一些不可預(yù)知的行為。將NULL轉(zhuǎn)換為array會得到一個空的數(shù)組。?

? ? ? ? ? ? ?數(shù)組(Array)的賦值總是會涉及到值的拷貝。注意這點(diǎn)。

8.對象。

? ? ? ?如果將一個對象轉(zhuǎn)換成對象,它將不會有任何變化。如果其它任何類型的值被轉(zhuǎn)換成對象,將會創(chuàng)建一個內(nèi)置類stdClass的實例。如果該值為NULL,則新的實例為空。數(shù)組轉(zhuǎn)換成對象將使鍵名成為屬性名并具有相對應(yīng)的值。對于任何其它的值,名為scalar的成員變量將包含該值。

9.資源

? ? ? ? ?一種特殊變量,保存了到外部資源的一個引用。資源是通過專門的函數(shù)來建立和使用的。

? ? ? ? 轉(zhuǎn)換資源:由于資源類型變量保存有為打開文件、數(shù)據(jù)庫連接、圖形畫布區(qū)域等的特殊句柄,因此將其它類型的值轉(zhuǎn)換為資源沒有意義。

? ? ? ? 釋放資源:由于 PHP 4 Zend 引擎引進(jìn)了引用計數(shù)系統(tǒng),可以自動檢測到一個資源不再被引用了(和 Java 一樣)。這種情況下此資源使用的所有外部資源都會被垃圾回收系統(tǒng)釋放。因此,很少需要手工釋放內(nèi)存。

10.NULL

? ? ? ?使用(unset) $var將一個變量轉(zhuǎn)換為null不會刪除該變量或 unset 其值。僅是返回NULL值而已。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、echo語句 1.格式 echo是PHP中的輸出語句,可以把字符串輸出(字符串用雙引號括起來,echo關(guān)鍵字與...
    ISwiftUI閱讀 554評論 0 1
  • 一.Apache基礎(chǔ) 1.網(wǎng)站幾個的基本概念 靜態(tài)網(wǎng)站: 不支持?jǐn)?shù)據(jù)交互的網(wǎng)站,單純的靜態(tài)文件(HTML,CSS,...
    小Q逛逛閱讀 329評論 1 4
  • 一數(shù)組1 自定義數(shù)組 索引數(shù)組(枚舉數(shù)組) 定義方法一:使用array方法: ①索引數(shù)組(枚舉數(shù)組):array(...
    簡小張閱讀 629評論 0 0
  • 此時此刻,他正在餐廳念拼音。我的肺要?dú)庹?。磕磕巴巴,念了ba bo po mu da,每一個拼音都是我提示加透...
    小狐貍的麻麻閱讀 750評論 0 1

友情鏈接更多精彩內(nèi)容