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