摘要:掃下手冊的語言參考。允許的強制轉(zhuǎn)換有。錯誤控制置于表達(dá)式前時,忽略該表達(dá)式產(chǎn)生的錯誤信息。運行外部程序使用反引號,效果等同于函數(shù)。文件未找到時,給出錯誤,而僅僅給出警告。目標(biāo)位置用目標(biāo)名稱加上冒號標(biāo)記,必須位于同一文件和作用域。
掃下手冊的語言參考。(函數(shù)以前)
類型有boolean、integer、float、string、array等類型。
可以通過gettype函數(shù)查看類型,如果要同時查看變量的值,則使用var_dump。
Boolean以下值為FALSE:
FALSE
0
0.0
"" 和 "0"
[]
不包括任何成員變量的對象
NULL (包括尚未賦值的變量)
從沒有任何tags的 XML 文檔生成的 SimpleXML 對象
大致上,0和空都是假的。
字符串支持單引號、雙引號、Heredoc和Nowdoc。
字符串可以當(dāng)成字符組成的數(shù)組用,即可以用整數(shù)作index。
字符串可以參與算術(shù)!
$foo = 1 + "10.5"; // $foo is float (11.5) $foo = 1 + "10 Small Pigs"; // $foo is integer (11)
操作文本的函數(shù)對于字符串編碼的假定非常混亂!請參考手冊。
類型強制轉(zhuǎn)換上面字符串參與算術(shù)的例子就是類型自動轉(zhuǎn)換。下面是一個強制轉(zhuǎn)換的例子。
$foo = 10; // $foo is an integer $bar = (bool) $foo; // $bar is a boolean
允許的強制轉(zhuǎn)換有 int bool float string array object unset binary。
變量默認(rèn)賦值是傳遞變量的值,添加&符號為引用賦值。
用global聲明全局變量,用static聲明靜態(tài)變量(僅在函數(shù)第一次調(diào)用時初始化)。
支持變量的值作為變量名,例如:
$a = "hello"; $$a = "world";
這將導(dǎo)致如下語句等效:
echo "$a ${$a}"; echo "$a $hello";
支持一些來自PHP外部的變量,例如_GET _POST _COOKIE。
常量PHP的常量通過define()函數(shù)或者const關(guān)鍵字來定義。前面沒有美元符號。
PHP的常量很弱,只能包含boolen、integer、float和string。
算術(shù)除法運算符總是返回浮點數(shù),除非是用于能夠整除的整數(shù)。
比較==和===的區(qū)別是是否自動類型轉(zhuǎn)換。
用于數(shù)組時,===還要求順序相同。
@置于表達(dá)式前時,忽略該表達(dá)式產(chǎn)生的錯誤信息。
運行外部程序使用反引號,效果等同于函數(shù)shell_exec。
$output = `ls -al`;遞增、遞減
支持C風(fēng)格的奇技淫巧:++$a $a++ --$a $a--
邏輯運算符支持xor、!,同時支持and、or和&&、||(優(yōu)先級略有差異)。
字符串用.連接字符串,用.=將右邊的參數(shù)附加到左邊參數(shù)之后。
聯(lián)合數(shù)組使用+,把右邊的數(shù)組元素附加到左邊的數(shù)組后面,兩個數(shù)組中都有的鍵名,則只用左邊數(shù)組中的,右邊的被忽略。
流程控制do while在循環(huán)結(jié)束后判斷,所以至少運行一次!
for的用法和python不一樣,和C類似。和python的for相似的是foreach:Python下的for i in l和for k,v in d,PHP下寫成foreach ($l as $i) 和 foreach ($d as $k => $v)。注意,通過引用賦值可以方便地修改數(shù)組中的元素。
$arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; }
break可以接受數(shù)字參數(shù)決定跳出幾重循環(huán)。
switch比較奇怪,如果case的語句段不加break,會繼續(xù)執(zhí)行下一個case中的語句(即使下一個case不滿足條件)。當(dāng)然這也意味著某些時候可以縮短代碼:
switch ($_SESSION["lang"]) { case "en": case "es": case "zh-tw": case "zh-cn": $lang_file = "lang.".$_SESSION["lang"].".php"; break; default: $lang_file = "lang.en.php"; }
不過其實如果switch的case支持一般表達(dá)式的話,完全可以寫得更簡單的:
switch ($_SESSION["lang"]) { case ("en" | "es" | "zh-tw" | "zh-cn"): $lang_file = "lang.".$_SESSION["lang"].".php"; break; default: $lang_file = "lang.en.php"; }
可惜的是上面的php是非法的,因為 case 表達(dá)式只能是數(shù)字或字符串!
requirerequire和include類似,包含的文件繼承了所在行的變量范圍。若未給出路徑,優(yōu)先在include_path中查找,沒找到的情況下才在調(diào)用腳本所在目錄和當(dāng)前工作目錄下查找。
文件未找到時,require給出錯誤,而include僅僅給出警告。
require_onec和include_once確保文件只被包含一次。
goto目標(biāo)位置用目標(biāo)名稱加上冒號標(biāo)記,必須位于同一文件和作用域。
基本的文件讀寫和正則。
const FILE_NAME = "city.txt"; const NEW_FILE = "area.txt"; $city_list = explode(" ", file_get_contents(FILE_NAME)); $result = implode(" ", preg_grep("/[0-9]/", $city_list, PREG_GREP_INVERT)); file_put_contents(NEW_FILE, $result);
Day 0 - 5 列表
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20638.html
摘要:如果有此需要,同樣要使用匿名函數(shù)。以上兩點可以總結(jié)為函數(shù)對應(yīng)于常量,匿名函數(shù)對應(yīng)于變量。匿名函數(shù)生成類的實例類聲明通過表明繼承關(guān)系,不支持多重繼承。覆蓋方法時,參數(shù)必須保持一致,否則會拋出警告。 函數(shù) 函數(shù)具有全局作用域,可以定義在一個函數(shù)之內(nèi)而在該函數(shù)之外調(diào)用。 function foo() { function bar() { echo I dont exist...
這個系列就暫時告一段落了。這是一個目錄。 Day 0 起步 Day 1 基本語法 Day 2 REPL 和 包管理 Day 3 語言參考 Day 4 語言參考(下半篇) Day 5 練手程序
摘要:包管理試用了,新一代的包管理器,感覺不錯。習(xí)題答案習(xí)題見圖書優(yōu)惠活動,計算需要付的金額。文件讀寫函數(shù)有,表示追加,鎖定文件,避免別的進程同時讀寫。 最新版 Debian Wheezy下的PHP是5.4的,day0時說圖方便就裝了5.4。但是看文檔是5.5的,所以琢磨著還是用最新版算了。 Debian Wheezy有dotdeb.org提供php-5.5。安裝很方便。 將下列內(nèi)容加...
摘要:記錄一下學(xué)習(xí)的軌跡。起步推薦用最新的。內(nèi)建服務(wù)器這年頭大部分語言都支持這一出了。交互式的環(huán)境學(xué)習(xí)方便,推薦下家的是用寫的。結(jié)尾可以省略,然后可以簡寫成,于是上面的可以簡寫成當(dāng)然像這種一行的,用也成練習(xí)題感謝出題搭好環(huán)境,寫出第一個。 記錄一下學(xué)習(xí)的軌跡。 入門資料 對我而言好的入門資料要符合兩個要求: 能夠切實幫助以比較正的方式入門 薄 真沒找到什么好的入門資料。沒有《Di...
摘要:你好,的協(xié)程高性能網(wǎng)絡(luò)通信引擎,使用語言編寫,提供了多種通信協(xié)議的網(wǎng)絡(luò)服務(wù)器和客戶端模塊。可應(yīng)用于互聯(lián)網(wǎng)移動通信企業(yè)軟件網(wǎng)絡(luò)游戲物聯(lián)網(wǎng)車聯(lián)網(wǎng)智能家庭等領(lǐng)域。這篇文章主要分享毫秒精度的定時器。最小時間粒度為毫秒。 你好,Swoole PHP 的協(xié)程高性能網(wǎng)絡(luò)通信引擎,使用 C/C++ 語言編寫,提供了多種通信協(xié)議的網(wǎng)絡(luò)服務(wù)器和客戶端模塊。 Swoole 可應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件...
閱讀 1078·2021-11-16 11:45
閱讀 2721·2021-09-27 13:59
閱讀 1320·2021-08-31 09:38
閱讀 3148·2019-08-30 15:52
閱讀 1317·2019-08-29 13:46
閱讀 2092·2019-08-29 11:23
閱讀 1638·2019-08-26 13:47
閱讀 2489·2019-08-26 11:54