成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP學(xué)習(xí) Day 3 語(yǔ)言參考

sean / 870人閱讀

摘要:掃下手冊(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、integerfloatstring。

算術(shù)

除法運(yùn)算符總是返回浮點(diǎn)數(shù),除非是用于能夠整除的整數(shù)。

比較

=====的區(qū)別是是否自動(dòng)類型轉(zhuǎn)換。
用于數(shù)組時(shí),===還要求順序相同。

錯(cuò)誤控制

@置于表達(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í)支持andor&&、||(優(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 lfor 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í)如果switchcase支持一般表達(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ù)字或字符串!

require

requireinclude類似,包含的文件繼承了所在行的變量范圍。若未給出路徑,優(yōu)先在include_path中查找,沒(méi)找到的情況下才在調(diào)用腳本所在目錄和當(dāng)前工作目錄下查找。

文件未找到時(shí),require給出錯(cuò)誤,而include僅僅給出警告。

require_onecinclude_once確保文件只被包含一次。

goto

目標(biāo)位置用目標(biāo)名稱加上冒號(hào)標(biāo)記,必須位于同一文件和作用域。


習(xí)題答案

基本的文件讀寫和正則。


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

相關(guān)文章

  • PHP學(xué)習(xí) Day 4 語(yǔ)言參考(下半篇)

    摘要:如果有此需要,同樣要使用匿名函數(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...

    WelliJhon 評(píng)論0 收藏0
  • PHP學(xué)習(xí)之路 目錄

    這個(gè)系列就暫時(shí)告一段落了。這是一個(gè)目錄。 Day 0 起步 Day 1 基本語(yǔ)法 Day 2 REPL 和 包管理 Day 3 語(yǔ)言參考 Day 4 語(yǔ)言參考(下半篇) Day 5 練手程序

    liaosilzu2007 評(píng)論0 收藏0
  • PHP學(xué)習(xí) Day 2 REPL 和 包管理

    摘要:包管理試用了,新一代的包管理器,感覺(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)容加...

    microelec 評(píng)論0 收藏0
  • PHP學(xué)習(xí) Day 0 起步

    摘要:記錄一下學(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...

    Cruise_Chan 評(píng)論0 收藏0
  • Swoole Timer 的應(yīng)用

    摘要:你好,的協(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è)軟件...

    fyber 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<