<output id="r87xx"></output>
    1. 
      
      <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
        •   

               當(dāng)前位置:首頁(yè)>軟件介紹>php教程-基礎(chǔ)版 查詢:
               
          php教程-基礎(chǔ)版

                  第一章

                  基本語(yǔ)法

                  第一節(jié) PHP 代碼書寫

                  PHP 代碼我們以<?php 開(kāi)始,以?>結(jié)束。如: <?php

                  echo"我正在學(xué)習(xí)PHP";

                  ?>

                  在瀏覽器中將輸出:

                  我正在學(xué)習(xí)PHP

                  這種風(fēng)格我們稱之為標(biāo)準(zhǔn)風(fēng)格,我們也可省去“PHP”三個(gè)字母,即我們常常說(shuō)的簡(jiǎn)短風(fēng)格。如:

                  <?php

                  echo"我正在學(xué)習(xí)PHP";

                  ?>

                  同樣我們?cè)跒g覽器中可以看到:

                  我正在學(xué)習(xí)PHP 此外,還有Script 風(fēng)格,如:

                  <script language="php">

                  echo"我正在學(xué)習(xí)PHP";

                  </script>

                  以及ASP 風(fēng)格,如:

                  <%

                  echo"我正在學(xué)習(xí)PHP";

                  %>

                  ASP 風(fēng)格在默認(rèn)情況下是被禁止的,如果需要運(yùn)行,需修改asp_tags 選項(xiàng),在PHP.int 里。

                  我們一般用標(biāo)準(zhǔn)風(fēng)格及簡(jiǎn)短風(fēng)格,Script 風(fēng)格及ASP 風(fēng)格基本不用,但是,為了達(dá)到最好的兼容性,我們推薦使用標(biāo)準(zhǔn)風(fēng)格,而不使用簡(jiǎn)短風(fēng)格。

                  第二節(jié) PHP 文本注釋

                  在PHP 中,我們使用“//”來(lái)編寫單行注釋,或者使用 “/* ? */ ”來(lái)編寫多行注釋,也可用“#”來(lái)注釋,但這個(gè)不太常用。 文本的注釋要寫在代碼的上方或右邊,不要寫在代碼的下方。

                  <?php

                  //echo() 函數(shù)輸出一個(gè)或多個(gè)字符串。

                  /*echo() 實(shí)際上不是一個(gè)函數(shù),因此您無(wú)需對(duì)其使用括號(hào)。

                  不過(guò),如果您希望向 echo() 傳遞一個(gè)或多個(gè)參數(shù), 那么使用括號(hào)會(huì)發(fā)生解析錯(cuò)誤。*/

                  echo"我正在學(xué)習(xí)PHP";

                  ?>

                  在瀏覽器中只輸出:

                  我正在學(xué)習(xí)PHP

                  而注釋了的文本卻沒(méi)有顯示。

                  第三節(jié) PHP 輸出函數(shù)

                  PHP 輸出函數(shù)有echo()函數(shù)與print()函數(shù)以及格式化輸出函數(shù)printf()函數(shù)和sprintf()函數(shù)。

                  一、echo()函數(shù)

                  echo()函數(shù)輸出一個(gè)或多個(gè)字符串,可以用圓括號(hào),也可不用,在實(shí)際應(yīng)用中,我們一般不用圓括號(hào);echo 更象一條語(yǔ)句,無(wú)返回值。 <?php

                  echo("今天天氣很好,我們出去玩~")."<br>"; echo"今天天氣很好,我們出去玩~";

                  ?>

                  瀏覽器中輸出為:

                  今天天氣很好,我們出去玩~

                  今天天氣很好,我們出去玩~

                  二、print()函數(shù)

                  print()函數(shù)輸出一個(gè)或多個(gè)字符串,可以用圓括號(hào),也可不用,在實(shí)際應(yīng)用中,我們一般不用圓括號(hào);print()函數(shù)有返回值,其返回值為1,當(dāng)其執(zhí)行失敗(比如斷線)時(shí)返回flase。

                  <?php

                  print("今天天氣很好,我們出去玩~")."<br>"; print"今天天氣很好,我們出去玩~"."<br>"; echo print"今天天氣很好,我們出去玩~"; ?>

                  瀏覽器中輸出為:

                  今天天氣很好,我們出去玩~

                  今天天氣很好,我們出去玩~

                  今天天氣很好,我們出去玩~1

                  第一句、第二句都輸出了“今天天氣很好,我們出去玩~”,第三除了輸出了“今天天氣很好,我們出去玩~”外,還輸出了返回值“1。 echo()函數(shù)與print()函數(shù)兩者的功能幾乎完全一樣,有一點(diǎn)不同就是echo()函數(shù)無(wú)返回值,print()函數(shù)有返回值。且echo()函數(shù)稍快于print()函數(shù)。

                  三、printf()函數(shù)

                  printf()函數(shù)輸出格式化的字符串。其中格式化字符串包括兩部分內(nèi)容:一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開(kāi)始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來(lái)確定輸出內(nèi)容格式。 參量表是需要輸出的一系列參數(shù),其個(gè)數(shù)必須與格式化字符串所說(shuō)明的輸出參數(shù)個(gè)數(shù)一樣多,各參數(shù)之間用“,”分開(kāi),且順序一一對(duì)應(yīng),否則將會(huì)出現(xiàn)意想不到的錯(cuò)誤。

                  常用類型轉(zhuǎn)換符

                  %b 整數(shù)轉(zhuǎn)二進(jìn)制

                  %c 整數(shù)轉(zhuǎn)ASCII 碼

                  %d 整數(shù)轉(zhuǎn)有符號(hào)十進(jìn)制

                  %f 倍精度轉(zhuǎn)浮點(diǎn)

                  %o 整數(shù)轉(zhuǎn)八進(jìn)制

                  %s 整數(shù)轉(zhuǎn)字符串

                  %u 整數(shù)轉(zhuǎn)無(wú)符號(hào)十進(jìn)制

                  %x 整數(shù)轉(zhuǎn)十六進(jìn)制(小寫)

                  4

                  %X 整數(shù)轉(zhuǎn)十六進(jìn)制(大寫)

                  <?php

                  $a = "今天";

                  $b = 10;

                  printf("%s我買了%u本書",$a,$b);

                  ?>

                  瀏覽器輸出的內(nèi)容是:

                  今天我買了10 本書

                  printf()函數(shù)有返回值,其返回值為字符串的長(zhǎng)度。 <?php

                  $a = "今天";

                  $b = 10;

                  echo printf("%s我買了%u本書",$a,$b);

                  ?>

                  此時(shí)瀏覽器輸出的內(nèi)容是:

                  今天我買了10 本書16

                  其中“今天我買了10 本書”為printf()函數(shù)格式化后的字符串,“16”為printf()函

                  數(shù)的返回值——字符串的長(zhǎng)度16,需要通過(guò)echo 才能輸出。 四、sprintf()函數(shù) sprintf()函數(shù)與printf()函數(shù)類似,printf()函數(shù)的返回值是字符串的長(zhǎng)度,而sprintf()函數(shù)的返回值側(cè)是字符串的本身。因此,sprintf()函數(shù)必須通過(guò)echo 才能輸出。

                  <?php

                  $a = "今天";

                  $b = 10;

                  echo sprintf("%s我買了%u本書",$a,$b); ?>

                  我們?cè)跒g覽器中可以看到輸出為今天我買了10 本書,如果省略掉了echo,那么瀏覽器中輸出為空。

                  sprintf()和printf()的用法和C 語(yǔ)言中的printf()非常相似。我們經(jīng)常用sprintf()將 十進(jìn)制轉(zhuǎn)換為其它進(jìn)制。如:

                  <?php

                  $a = 12;

                  echo sprintf ("%b",$a);

                  ?>

                  在瀏覽器中輸出為:

                  1100

                  即將12 轉(zhuǎn)為二進(jìn)制為1100。

                  第四節(jié) PHP 變量

                  變量用于存儲(chǔ)值,比如數(shù)字、文本字符串或數(shù)組。一旦設(shè)置了某個(gè)變量,我們就可以在腳本中重復(fù)地使用它。PHP 的變量必須以 $ 符開(kāi)始,然后再加上變量名。

                  一、變量的命名

                  1.變量名必須以字母或者下劃線 "_" 開(kāi)頭,后面跟上任意數(shù)量的字母、數(shù)字或者下劃線。

                  2.變量名不能以數(shù)字開(kāi)頭,中間不能有空格及運(yùn)算符。 3.變量名嚴(yán)格區(qū)分大小寫,即$UserName 與$username 是不同的變量。

                  4.為避免命名沖突,不允許使用與PHP 內(nèi)置的函數(shù)相同的名稱。

                  5.在為變量命名時(shí),盡量使用有意義的字符串。 $name;

                  $_password;

                  $book1;

                  二、變量的賦值

                  為變量賦值有兩種方式:傳值賦值和引用賦值,這兩種賦值方式在對(duì)數(shù)據(jù)的處理上存在很大差別。

                  1、傳值賦值

                  這種賦值方式使用“=”直接將一個(gè)變量(或表達(dá)式)的值賦給變量。使用這種賦值方式,等號(hào)兩邊的變量值互不影響,任何一個(gè)變量值的變化都不會(huì)影響到另一個(gè)變量。從根本上講,傳值賦值是通過(guò)在存儲(chǔ)區(qū)域復(fù)制一個(gè)變量的副本來(lái)實(shí)現(xiàn)的。應(yīng)用傳值賦值的示例代碼如下。

                  <?php

                  $a = 33;

                  $b = $a;

                  $b = 44;

                  echo "變量a的值為".$a."<br>";

                  echo "變量b的值為".$b;

                  ?>

                  在上面的代碼中,執(zhí)行“$a = 33”語(yǔ)句時(shí),系統(tǒng)會(huì)在內(nèi)存中為變量a 開(kāi)辟一個(gè)存儲(chǔ)空間,并將“33”這個(gè)數(shù)值存儲(chǔ)到該存儲(chǔ)空間。 執(zhí)行“$b = $a”語(yǔ)句時(shí),系統(tǒng)會(huì)在內(nèi)存中為變量b 開(kāi)辟一個(gè)存儲(chǔ)空間,并將變量a 所指向的存儲(chǔ)空間的內(nèi)容復(fù)制到變量b 所指向的存儲(chǔ)空間。執(zhí)行“$b = 44”語(yǔ)句時(shí),系統(tǒng)將變量b 所指向的存儲(chǔ)空間保存的值更改為“44”,而變量a 所指向的存儲(chǔ)空間保存的值仍然是“33”。 因此,我們?cè)跒g覽器上看到的內(nèi)容為:

                  變量a 的值為33

                  變量b 的值為44

                  2、引用賦值

                  引用賦值同樣也是使用“=”將一個(gè)變量的值賦給另一個(gè)變量,但是需要在等號(hào)右邊的變量前面加上一個(gè)“&”符號(hào)。實(shí)際上這種賦值方式并不是真正意義上的賦值,而是一個(gè)變量引用另一個(gè)變量。在使用引用賦值的時(shí)候,兩個(gè)變量將會(huì)指向內(nèi)存中同一存儲(chǔ)空間。因此任何一個(gè)變量的變化都會(huì)引起另外一個(gè)變量的變化。應(yīng)用引用賦值的示例代碼如下。

                  <?php

                  $a = 33;

                  $b = &$a;

                  $b = 44;

                  echo "變量a的值為".$a."<br>";

                  echo "變量b的值為".$b;

                  ?>

                  在上面的代碼中執(zhí)行“$a = 33”語(yǔ)句時(shí),對(duì)內(nèi)存進(jìn)行操作的過(guò)程與傳值賦值相同,這里就不再介紹了。執(zhí)行“$b = &$a”語(yǔ)句后,變量b 將會(huì)指向變量a 所占有的存儲(chǔ)空間。 執(zhí)行“$b = 44”語(yǔ)句后,變量b 所指向的存儲(chǔ)空間保存的值變?yōu)椤?4”。此時(shí)由于變量a 也指向此存儲(chǔ)空間,所以變量a 的值也會(huì)變?yōu)椤?4”。

                  因此,我們?cè)跒g覽器上看到的內(nèi)容為:

                  變量a 的值為44

                  變量b 的值為44

                  三、變量的作用域

                  在使用PHP 語(yǔ)言進(jìn)行開(kāi)發(fā)的時(shí)候,我們幾乎可以在任何位置聲明變量。但是變

                  量聲明位置及聲明方式的不同決定了變量作用域的不同。所謂的變量作用域,指的是變量在哪些范圍內(nèi)能被使用,在哪些范圍內(nèi)不能被使用。PHP 中的變量按照作用域的不同可以分為局部變量和全局變量。

                  1、局部變量

                  局部變量是聲明在某一函數(shù)體內(nèi)的變量,該變量的作用范圍僅限于其所在的函數(shù)體的內(nèi)部。如果在該函數(shù)體的外部引用這個(gè)變量,則系統(tǒng)將會(huì)認(rèn)為引用的是另外一個(gè)變量。

                  應(yīng)用局部變量的示例代碼如下。

                  <?php

                  function local(){

                  $a = "“這是內(nèi)部函數(shù)”";//在函數(shù)內(nèi)部聲明一個(gè)變量a并賦值

                  echo "函數(shù)內(nèi)部變量a的值為".$a."<br>"; }

                  local();//調(diào)用函數(shù)local(),用來(lái)打印出變量a的值 $a = "“這是外部函數(shù)”"; //在函數(shù)外部再次聲明變量a并賦另一個(gè)值

                  echo "函數(shù)外部變量a的值為".$a;

                  ?>

                  在瀏覽器中輸出為:

                  函數(shù)外部變量a 的值為“這是外部函數(shù)”

                  2、全局變量

                  全局變量可以在程序的任何地方被訪問(wèn),這種變量的作用范圍是最廣泛的。要將一個(gè)變量聲明為全局變量,只需在該變量前面加上“global”關(guān)鍵字,不區(qū)分大小寫,也可以是“GLOBAL”。使用全局變量,我們能夠?qū)崿F(xiàn)在函數(shù)內(nèi)部引用函數(shù)外部的參數(shù),或者在函數(shù)外部引用函數(shù)內(nèi)部的參數(shù)。 應(yīng)用全局變量的示例代碼如下。

                  在函數(shù)內(nèi)部引用函數(shù)外部的參數(shù):

                  <?php

                  $a = "“這是外部函數(shù)”";//在外部定義一個(gè)變量a function local(){

                  global $a;//將變量a聲明為全局變量

                  echo "在local函數(shù)內(nèi)部獲得變量a的值為".$a."<br>"; }

                  local(); //調(diào)用函數(shù)local(),用于輸出local函數(shù)內(nèi)部變量a的值

                  ?>

                  在瀏覽器中輸出為:

                  在local 函數(shù)內(nèi)部獲得變量a 的值為“這是外部函數(shù)” 在函數(shù)外部引用函數(shù)內(nèi)部的參數(shù):

                  <?php

                  function local(){

                  global $a;//將變量a聲明為全局變量

                  $a = "“這是內(nèi)部函數(shù)”";//在內(nèi)部對(duì)變量a進(jìn)行賦值 }

                  local(); //調(diào)用函數(shù)local(),用于輸出local函數(shù)內(nèi)部變量a的值

                  echo "在local函數(shù)外部獲得變量a的值為".$a;//在函數(shù)local外部輸出變量

                  ?>

                  在瀏覽器中輸出為:

                  在local 函數(shù)外部獲得變量a 的值為“這是內(nèi)部函數(shù)”應(yīng)用全局變量雖然能夠使我們更加方便地操作變量,但是有的時(shí)候變量作用域的擴(kuò)大,會(huì)給開(kāi)發(fā)帶來(lái)麻煩,可能會(huì)引發(fā)一些預(yù)料不到的問(wèn)題。將一個(gè)變量聲明為全局變量,還有另外一種方法,就是利用$GLOBALS[]數(shù)組。

                  3、靜態(tài)變量

                  函數(shù)執(zhí)行時(shí)所產(chǎn)生的臨時(shí)變量,在函數(shù)結(jié)束時(shí)就會(huì)自動(dòng)消失。當(dāng)然,因?yàn)槌绦蛐枰?,函?shù)在循環(huán)過(guò)程中不希望變量在每次執(zhí)行完函數(shù)就消失的話,那么我們就要采用靜態(tài)變量,靜態(tài)變量是指用static 聲明的變量,這種變量與局部變量的區(qū)別是,當(dāng)靜態(tài)變量離開(kāi)了它的作用范圍后,它的值不會(huì)自動(dòng)消亡,而是繼續(xù)存在,當(dāng)下次再用到它的時(shí)候,可以保留最近一次的值。 應(yīng)用靜態(tài)變量的示例代碼如下。

                  <?php

                  function add()

                  {

                  static $a = 0;

                  $a++;

                  echo $a."<br >";

                  }

                  add ();

                  add ();

                  add ();

                  ?>

                  在瀏覽器中輸出為:

                  1

                  2

                  3

                  這段程序中,主要定義了一個(gè)函數(shù)add(),然后分3 次調(diào)用add()。

                  如果用局部變量的方式來(lái)分工這段代碼,3 次的輸出應(yīng)該都是1。但實(shí)際輸出卻是1、2 和3。

                  這是因?yàn)?,變量a 在聲明的時(shí)候被加上了一個(gè)修飾符static,這就標(biāo)志著a 變量在add()函數(shù)內(nèi)部就是一個(gè)靜態(tài)變量了,具備記憶自身值的功能,當(dāng)?shù)谝淮握{(diào)用add 時(shí),a 由于自加變成了1,這個(gè)時(shí)候,a 就記住自己不再是0,而是1 了,當(dāng)我們?cè)俅握{(diào)用add 時(shí),a 再一次自加,由1 變成了2,?。由此,我們就可以看出靜態(tài)變量的特性了。

                  4、可變變量

                  可變變量是一種獨(dú)特的變量,它可以動(dòng)態(tài)的改變一個(gè)變量的名稱,方法就是在該變量的前面加一個(gè)變量符號(hào)“$”。

                  <?php

                  $a= 'hello'; //普通變量

                  $$a = 'world'; //可變變量,相當(dāng)于$hello='world';echo $a."<br>";

                  echo $$a."<br>";

                  echo $hello."<br>";

                  echo "$a {$$a}"."<br>";

                  echo "$a $hello";//這種寫法更準(zhǔn)確并且會(huì)輸出同樣的結(jié)果 ?>

                  在瀏覽器中輸出為:

                  hello

                  world

                  world

                  hello world

                  hello world

                  5、預(yù)定義變量

                  預(yù)定義變量又稱為超級(jí)全局變量數(shù)組,是PHP 系統(tǒng)中自帶的變量,不需要開(kāi)發(fā)

                  者重新定義,它可讓你的程序設(shè)計(jì)更加的方便快捷。在PHP 腳本運(yùn)行時(shí),PHP

                  會(huì)自動(dòng)將一些數(shù)據(jù)放在超級(jí)全局?jǐn)?shù)組中。 PHP 預(yù)定義變量

                  變量 作用

                  $GLOBALS[] 儲(chǔ)存當(dāng)前腳本中的所有全局變量,其KEY 為變量名,VALUE 為變量值

                  $_SERVER[] 當(dāng)前WEB 服務(wù)器變量數(shù)組 $_GET[] 存儲(chǔ)以GET 方法提交表單中的數(shù)據(jù) $_POST[] 存儲(chǔ)以POST 方法提交表單中的數(shù)據(jù) $_COOKIE[] 取得或設(shè)置用戶瀏覽器Cookies 中存儲(chǔ)的變量數(shù)組

                  $_FILES[] 存儲(chǔ)上傳文件提交到當(dāng)前腳本的數(shù)據(jù) $_ENV[] 存儲(chǔ)當(dāng)前WEB 環(huán)境變量

                  $_REQUEST[]

                  存儲(chǔ)提交表單中所有請(qǐng)求數(shù)組,其中包括$_GET、 $_POST、$_COOKIE 和$_SESSION 中的所有內(nèi)容 $_SESSION[] 存儲(chǔ)當(dāng)前腳本的會(huì)話變量數(shù)組 四、變量的數(shù)據(jù)類型數(shù)據(jù)類型是具有相同特性的一組數(shù)據(jù)的統(tǒng)稱。PHP 早就提供了豐富的數(shù)據(jù)類型,PHP 5 中又有更多補(bǔ)充。數(shù)據(jù)類型可以分為3 類:標(biāo)量數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類

                  型和特殊數(shù)據(jù)類型。

                  標(biāo)量類型(四種):

                  整型(int,integer)

                  浮點(diǎn)型(float,double,real)

                  布爾型(bool,boolean)

                  字符串(string)

                  復(fù)合類型(兩種):

                  數(shù)組(array)

                  對(duì)象(object)

                  特殊類型(兩種):

                  資源(resource)

                  空值(NULL)

                  1、整型(integer)

                  PHP 中的整型指的是不包含小數(shù)部分的數(shù)據(jù)。在32 位操作系統(tǒng)中,整型數(shù)據(jù)的有效范圍在“-2147483648,+2147483647”之間。整型數(shù)據(jù)可以用十進(jìn)制(基數(shù)為10)、八進(jìn)制(基數(shù)為8,以0 作為前綴)或十六進(jìn)制(基數(shù)為16,以0x作為前綴)表示,并且可以包含“+”和“-”。整型數(shù)據(jù)的用法如下面代碼所示。

                  <?php

                  $a = 100; //十進(jìn)制整型數(shù)據(jù)

                  $b = -034; //八進(jìn)制整型數(shù)據(jù)

                  $c = 0xBF; //十六進(jìn)制整型數(shù)據(jù)

                  echo $a."<br>";

                  echo $b."<br>";

                  echo $c;

                  ?>

                  在瀏覽器中輸出為:

                  100

                  -28

                  191

                  如果給定的數(shù)字超出了整型數(shù)據(jù)規(guī)定的范圍,則會(huì)產(chǎn)生數(shù)據(jù)溢出。對(duì)于這種情況,PHP 會(huì)自動(dòng)將整型數(shù)據(jù)轉(zhuǎn)化為浮點(diǎn)型數(shù)據(jù)。

                  2、浮點(diǎn)型(float)

                  浮點(diǎn)型數(shù)據(jù)就是通常所說(shuō)的實(shí)數(shù),可分為單精度浮點(diǎn)型數(shù)據(jù)和雙精度浮點(diǎn)型數(shù)據(jù)。浮點(diǎn)數(shù)主要用于簡(jiǎn)單整數(shù)無(wú)法滿足的形式,比如長(zhǎng)度、重量等數(shù)據(jù)的表示。

                  浮點(diǎn)型數(shù)據(jù)的用法如下面代碼所示。

                  <?php

                  $a = 1.2;

                  $b = -0.34;

                  $c = 1.8e4; //該浮點(diǎn)數(shù)表示1.8×104

                  echo $a."<br>";

                  echo $b."<br>";

                  echo $c;

                  ?>

                  在瀏覽器中輸出為:

                  13

                  1.2

                  -0.34

                  18000

                  3、布爾型(boolean)

                  布爾型數(shù)據(jù)是在PHP 4 中開(kāi)始出現(xiàn)的,一個(gè)布爾型的數(shù)據(jù)只有“true”和“false”兩種取值,分別對(duì)應(yīng)邏輯“真”與邏輯“假”。布爾型變量的用法如下面代碼所示。在使用布爾型數(shù)據(jù)類型時(shí),“true”和“false”兩個(gè)取值是不區(qū)分大小寫的。 也就是說(shuō)“TRUE”和“FALSE”同樣是正確的。 <?php

                  $a = true;

                  $b = false;

                  echo $a;

                  echo $b;

                  ?>

                  在瀏覽器中輸出為:

                  1 當(dāng)布爾值為“true”時(shí),輸出為1,當(dāng)布爾值為“false”時(shí),輸出為空。

                  4、字符串(string)

                  字符串是一個(gè)字符的序列。組成字符串的字符是任意的,可以是字母、數(shù)字或者符號(hào)。在PHP 中沒(méi)有對(duì)字符串的最大長(zhǎng)度進(jìn)行嚴(yán)格的規(guī)定。在PHP 中定義字符串有3 種方式:使用單引號(hào)(')定義、使用雙引號(hào)(")定義和使用定界符(<<<)

                  定義。下面是一個(gè)使用字符串的例子。 <?php

                  $var = "中國(guó)人";

                  echo "我是$var"."<br>";

                  echo '我是$var'.'<br>';

                  echo "今天天氣很好~"."<br>";

                  echo '我們?nèi)D書館。'."<br>";

                  echo <<<Eof

                  我是一個(gè){$var}

                  Eof;

                  ?>

                  在瀏覽器中輸出為:

                  我是中國(guó)人

                  我是$var

                  今天天氣很好~

                  我是中國(guó)人

                  我是$var

                  今天天氣很好~

                  我們?nèi)D書館。

                  我是一個(gè)中國(guó)人

                  php 中單引號(hào)和雙引號(hào)的最大區(qū)別就是,雙引號(hào)比單引號(hào)多一步解析過(guò)程。雙引號(hào)會(huì)把雙引號(hào)中的變量及轉(zhuǎn)義字符解析出來(lái)。而單引號(hào)則不管它的內(nèi)容是什么,都作為字符串輸出。 在雙引號(hào)中,中文和變量一起使用時(shí),變量最好要用{}括起來(lái),或變量前后的字符串用雙引號(hào),再用“.”與變量相連。 <?php

                  $str = "年輕人";

                  echo "我們都是$str,應(yīng)該多學(xué)習(xí)。"."<br>"; echo "我們都是{$str},應(yīng)該多學(xué)習(xí)。"."<br>"; echo "我們都是".$str.",應(yīng)該多學(xué)習(xí)。"; ?>

                  在瀏覽器中輸出為:

                  我們都是

                  我們都是年輕人,應(yīng)該多學(xué)習(xí)。

                  我們都是年輕人,應(yīng)該多學(xué)習(xí)。

                  第一句輸出因?yàn)樽兞繘](méi)用{}括起來(lái),或者沒(méi)有將字符串分開(kāi),再用“.”與變量相 連,因此變量及其后面的字符串不能輸出,第二、三句輸出都正常。 在一般情況下,我們盡量使用單引號(hào),因?yàn)樵诶碚撋?,單引?hào)的運(yùn)行速度要快些,如果遇到有變量及轉(zhuǎn)義字符需要解析時(shí),我們才用雙引號(hào)。 下面是一些常用的轉(zhuǎn)義字符:

                  轉(zhuǎn)移序列 描述

                   換行符

                   回車符

                   制表符

                   反斜線

                  $ 美元符

                  " 雙引號(hào)

                  值得注意的是,“ ”,“ ”和“ ”三個(gè)轉(zhuǎn)義字符在瀏覽器中不能反應(yīng)出來(lái),只能在源文件看到。

                  PHP 定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內(nèi)部的東西;在PHP 定界符中的任何特殊字符都不需要轉(zhuǎn)義;PHP 定界符中的PHP 變量會(huì)被正常的用其值來(lái)替換。使用定界符應(yīng)注意以下幾點(diǎn):

                  (1)在<<<之后的字符Eof 是自己定義的,隨便什么都是可以的,但是結(jié)尾處的字符一定要和他一樣,他們是成對(duì)出現(xiàn)的;

                  (2)結(jié)尾的Eof;,一定要另起一行,并且除了Eof;這個(gè)定界符結(jié)尾標(biāo)識(shí)之外不能有任何其他字符,前后都不能有,包括空格;

                  (3)如果在定界符中間出現(xiàn)有PHP 的變量,你只需要像在其它字符串中輸出一樣寫就行了,變量$var 之所以要用{}括起來(lái)是要告訴PHP 解析器這是一個(gè)PHP 變量,其實(shí)不用也是可以的,但是有可能會(huì)產(chǎn)生歧義。

                  5、數(shù)組(array)

                  數(shù)組是一系列相關(guān)的數(shù)據(jù)以某種特定的方式進(jìn)行排列而組成的集合。組成這個(gè)集合的各個(gè)數(shù)據(jù)可以是基本數(shù)據(jù)類型,也可以是復(fù)合數(shù)據(jù)類型;可以是相同的數(shù)據(jù)類型,也可以是不同的數(shù)據(jù)類型。

                  數(shù)組里的每一個(gè)數(shù)據(jù)元素都有其唯一的編號(hào),稱為索引。索引用于指定數(shù)組中特定的數(shù)據(jù)元素。在有的語(yǔ)言中數(shù)組的索引必須是數(shù)字編號(hào),而在PHP 中,索引可以是數(shù)字編號(hào),也可以是字符串。

                  一個(gè)簡(jiǎn)單的PHP 數(shù)組的應(yīng)用示例代碼如下。

                  <?php

                  $network = array(1=>"how",2=>are,'three'=>"you"); echo $network[2];

                  echo $network[three];

                  ?>

                  在瀏覽器中輸出為:

                  areyou

                  6、對(duì)象(object)

                  對(duì)象是面向?qū)ο笳Z(yǔ)言中的一個(gè)核心概念,對(duì)象就是類的一個(gè)實(shí)例。在了解對(duì)象之前我們先簡(jiǎn)單介紹一下什么是“類”。在面向?qū)ο笳Z(yǔ)言中,人們把各個(gè)具體事物的共同特征抽取出來(lái),形成一個(gè)一般的概念,也就構(gòu)成了一個(gè)“類”。

                  在PHP 中類的定義方式如下。

                  class 類名 {

                  類里包含的內(nèi)容;

                  }

                  在PHP 中,通過(guò)“new”關(guān)鍵字來(lái)實(shí)例化一個(gè)類并得到該類的一個(gè)對(duì)象。類和

                  對(duì)象的應(yīng)用示例如下面代碼所示。

                  <?php

                  class Book {

                  function getBookName($book_name){

                  return $book_name;

                  }

                  }

                  $book1 = new Book(); //實(shí)例化一個(gè)Book類的對(duì)象book1 echo $book1->getBookName("PHP")."<br>"; $book2 = new Book(); //實(shí)例化一個(gè)Book類的對(duì)象book2 echo $book2->getBookName("JSP");

                  ?>

                  17

                  在瀏覽器中輸出為:

                  PHP

                  JSP

                  7、資源(resource)

                  資源是PHP 提供的一種特殊數(shù)據(jù)類型,該數(shù)據(jù)類型用于表示一個(gè)PHP 的外部

                  資源,比如一個(gè)數(shù)據(jù)庫(kù)的訪問(wèn)操作,或者一個(gè)網(wǎng)絡(luò)流的處理等。雖然資源也是一種數(shù)據(jù)類型,但是我們卻不能直接對(duì)它進(jìn)行操作。PHP 提供了一些特定的函數(shù),用于建立和使用資源。比如“mysql_connect()”函數(shù)用于建立一個(gè)MySQL 數(shù)據(jù)的連接,“fopen()”函數(shù)用于打開(kāi)一個(gè)文件等。 應(yīng)用資源數(shù)據(jù)類型的示例代碼如下。

                  <?php

                  $cn = mysql_connect('localhost','root'); echo get_resource_type($cn)."<br>";

                  $fp = fopen("foo","w");

                  echo get_resource_type($fp);

                  ?>

                  在瀏覽器中輸出為:

                  mysql link

                  stream

                  8、空值(NULL)

                  NULL 是PHP 4 開(kāi)始引入的一個(gè)特殊的數(shù)據(jù)類型,這種數(shù)據(jù)類型只有一個(gè)值

                  NULL。在PHP 中,如果變量滿足以下幾種情況,那么該變量的值就為NULL。

                  變量未被賦予任何值。

                  變量被賦值為NULL。

                  被unset()函數(shù)處理后的變量。

                  下面是使用NULL 數(shù)據(jù)類型的一個(gè)示例。

                  <?php

                  $a ; //變量$a未被賦予任何值,$a的值為NULL $b = NULL ; //變量$b被賦值為NULL

                  18

                  $c = 1 ;

                  unset($c); //使用unset()函數(shù)處理后,$c的值為NULL ?>

                  五、變量類型的轉(zhuǎn)換

                  PHP 中的類型轉(zhuǎn)換包括兩種方式,即自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。下面我們

                  分別介紹這兩種類型轉(zhuǎn)換的實(shí)現(xiàn)方式及應(yīng)用過(guò)程。

                  1、自動(dòng)類型轉(zhuǎn)換

                  自動(dòng)類型轉(zhuǎn)換是指,在定義變量時(shí)不需要指定變量的數(shù)據(jù)類型,PHP 會(huì)根據(jù)引用變量的具體應(yīng)用環(huán)境將變量轉(zhuǎn)換為合適的數(shù)據(jù)類型。 如果所有運(yùn)算數(shù)都是數(shù)字,則將選取占用字節(jié)最長(zhǎng)的一種運(yùn)算數(shù)的數(shù)據(jù)類型作為基準(zhǔn)數(shù)據(jù)類型;如果運(yùn)算數(shù)為字符串,則將該字符串轉(zhuǎn)型為數(shù)字然后再進(jìn)行求值運(yùn)算。字符串轉(zhuǎn)換為數(shù)字的規(guī)定為如果字符串以數(shù)字開(kāi)頭,則只取數(shù)字部分而去除數(shù)字后面部分,根據(jù)數(shù)字部分構(gòu)成決定轉(zhuǎn)型為整型數(shù)據(jù)還是浮點(diǎn)型數(shù)據(jù);如果字符串以字母開(kāi)頭,則直接將字符串轉(zhuǎn)換為0。 <?php

                  $a = 1 + 1.23;

                  $b = 2 + "3.14";

                  $c = 3 + "abc";

                  echo $a."<br>";

                  echo $b."<br>";

                  echo $c."<br>";

                  ?>

                  在瀏覽器中輸出為:

                  2.23

                  5.14

                  3

                  在第1 個(gè)賦值運(yùn)算式中,運(yùn)算數(shù)包含了整型數(shù)字“1”和浮點(diǎn)型數(shù)字“1.23”, 首先取浮點(diǎn)型數(shù)據(jù)類型作為基準(zhǔn)數(shù)據(jù)類型。賦值后變量a 的數(shù)據(jù)類型為浮點(diǎn)型。在第2 個(gè)賦值運(yùn)算式中,運(yùn)算數(shù)包含了整型數(shù)字“2”和字符串型數(shù)據(jù)“3.14”,首先將字符串轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù)“3.14”,然后進(jìn)行加法運(yùn)算。賦值后變量b 的數(shù)據(jù)類型為浮點(diǎn)型。

                  在第3 個(gè)賦值運(yùn)算式中,運(yùn)算數(shù)包含了整型數(shù)字“3”和字符串型數(shù)據(jù)“abc”,首先將字符串轉(zhuǎn)換為整型數(shù)字0,然后進(jìn)行加法運(yùn)算。賦值后變量c 的數(shù)據(jù)類型為整型。

                  2、強(qiáng)制類型轉(zhuǎn)換

                  強(qiáng)制類型轉(zhuǎn)換允許我們手動(dòng)將變量的數(shù)據(jù)類型轉(zhuǎn)換成為指定的數(shù)據(jù)類型。PHP

                  強(qiáng)制類型轉(zhuǎn)換與C 語(yǔ)言或者Java 語(yǔ)言中的類型轉(zhuǎn)換相似,都是通過(guò)在變量前面加上一個(gè)小括號(hào),并把目標(biāo)數(shù)據(jù)類型填寫在括號(hào)中來(lái)實(shí)現(xiàn)的。

                  在PHP 中強(qiáng)制類型轉(zhuǎn)換的具體實(shí)現(xiàn)方式如下表所示。 PHP 強(qiáng)制類型轉(zhuǎn)換的實(shí)現(xiàn)方式 轉(zhuǎn)換格式 轉(zhuǎn)換結(jié)果 實(shí)現(xiàn)方式

                  (int),(integer)

                  將其他數(shù)據(jù)類型

                  強(qiáng)制轉(zhuǎn)換為整型

                  $a = "3";

                  $b = (int)$a; //

                  也可寫為$b = (integer)$a;

                  (bool),(boolean)

                  將其他數(shù)據(jù)類型

                  強(qiáng)制轉(zhuǎn)換為布爾型

                  $a = "3";

                  $b = (bool)$a; //

                  也可寫為$b = (boolean)$a;

                  (float),(double),(real)

                  將其他數(shù)據(jù)類型

                  強(qiáng)制轉(zhuǎn)換為浮點(diǎn)型

                  $a = "3";

                  $b = (float)$a;

                  $c = (double)$a;

                  $d = (real)$a;

                  (string)

                  將其他數(shù)據(jù)類型

                  強(qiáng)制轉(zhuǎn)換為字符串

                  $a = 3;

                  $b = (string)$a;

                  (array)

                  將其他數(shù)據(jù)類型

                  強(qiáng)制轉(zhuǎn)換為數(shù)組

                  $a = "3";

                  $b = (array)$a;

                  (object)

                  將其他數(shù)據(jù)類型

                  強(qiáng)制轉(zhuǎn)換為對(duì)象

                  $a = "3";

                  $b = (object)$a;

                  雖然PHP 提供了比較寬泛的類型轉(zhuǎn)換機(jī)制,為開(kāi)發(fā)者提供了很大便利,但同時(shí)也存在著一些問(wèn)題,比如將字符串型數(shù)據(jù)轉(zhuǎn)換為整型數(shù)據(jù)該如何轉(zhuǎn)換、將整型數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)該如何轉(zhuǎn)換等。如果沒(méi)有對(duì)上述類似的情形做出明確規(guī)定,那么在處理類型轉(zhuǎn)換問(wèn)題時(shí)就會(huì)出現(xiàn)一些問(wèn)題,幸運(yùn)的是PHP 為我們提供了相

                  關(guān)的轉(zhuǎn)換規(guī)定。

                  1)、其他數(shù)據(jù)類型轉(zhuǎn)換為整型的規(guī)則

                  其他數(shù)據(jù)類型轉(zhuǎn)換為整型

                  原類型 目標(biāo)類型 轉(zhuǎn)換規(guī)則

                  浮點(diǎn)型 整型 向下取整,即不會(huì)四舍五入而是直接去 掉浮點(diǎn)型數(shù)據(jù)小數(shù)點(diǎn)后邊的部分,只保留整數(shù)部分 布爾型 整型 TRUE 轉(zhuǎn)換成整型數(shù)字“1”,false 轉(zhuǎn)換成整型數(shù)字“0”字符串 整型

                  (1)字符串為純整型數(shù)字,轉(zhuǎn)換成相應(yīng)的整型數(shù)字

                  (2)字符串為帶小數(shù)點(diǎn)的數(shù)字,轉(zhuǎn)換時(shí)去除小數(shù)點(diǎn)后面的 部分,保留整數(shù)部分

                  (3)字符串以整型數(shù)字開(kāi)頭,轉(zhuǎn)換時(shí)去除整型數(shù)字后面的 部分,然后按照規(guī)則1 進(jìn)行處理

                  (4)字符串以帶小數(shù)點(diǎn)的數(shù)字開(kāi)頭,轉(zhuǎn)換時(shí)去除小數(shù)點(diǎn)后 面的部分,然后按規(guī)則2 進(jìn)行處理

                  (5)字符串內(nèi)容以非數(shù)字開(kāi)頭,直接轉(zhuǎn)換為0 將其他數(shù)據(jù)類型轉(zhuǎn)換為整型的示例代碼如下所示。 <?php

                  $a = "123";

                  $b = "123sunyang";

                  $c = "2.32";

                  $d = "2.32abc";

                  $e = "sunyang123";

                  $f = TRUE;

                  $g = FALSE;

                  $h = 3.1415926;

                  echo (int)$a."<br>";

                  echo (int)$b."<br>";

                  echo (int)$c."<br>";

                  echo (int)$d."<br>";

                  echo (int)$e."<br>";

                  echo (int)$f."<br>";

                  echo (int)$g."<br>";

                  echo (int)$h."<br>";

                  ?>

                  在瀏覽器中輸出為:

                  123

                  123

                  2

                  2

                  0

                  1

                  0

                  3

                  浮點(diǎn)型數(shù)據(jù)向整型數(shù)據(jù)轉(zhuǎn)換的時(shí)候,需要注意以下兩種情況。

                  如果幾個(gè)浮點(diǎn)型數(shù)據(jù)相乘,應(yīng)將大于1 的數(shù)放在最前面,并將整個(gè)式了括起來(lái),不然的話容易出錯(cuò)。以下示例代碼中,第一及第四個(gè)輸出正確,其他三個(gè)輸出都出現(xiàn)了錯(cuò)誤。

                  <?php

                  echo (int)(46.86*0.26*0.74)."<br>";//46.86*0.26*0.74=9.015864

                  echo (int)46.86*0.26*0.74."<br>";//其結(jié)果為46*0.26*0.74=8.8504

                  echo (int)0.26*0.74*46.86,"< br>"; echo (int)(100*0.1*0.7)."<br>"; echo (int)(0.1*0.7*100); ?>

                  在瀏覽器中輸出為:

                  9

                  8.8504

                  0

                  7

                  6

                  如果浮點(diǎn)型數(shù)據(jù)相除時(shí),也應(yīng)將整外除式括起來(lái),以免出現(xiàn)錯(cuò)誤。以下示例代碼中,第一及第三個(gè)輸出正確,其他兩個(gè)輸出都出現(xiàn)了錯(cuò)誤。 <?php

                  echo (int)(7.8/3.2)."<br>";//7.8/3.2=2.4375 echo (int)7.8/3.2."<br>";//其結(jié)果為7/3.2=2.1875 echo (int)(3.2/7.8)."<br>";//3.2/7.8=0.410256410256 echo (int)3.2/7.8;//其結(jié)果為3/7.8=0.384615384615 ?>

                  在瀏覽器中輸出為:

                  2

                  2.1875

                  0

                  0.384615384615

                  2)、其他數(shù)據(jù)類型轉(zhuǎn)換為浮點(diǎn)型的規(guī)則 其他數(shù)據(jù)類型轉(zhuǎn)換為浮點(diǎn)型

                  原類型 目標(biāo)類型 轉(zhuǎn)換規(guī)則

                  整型 浮點(diǎn)型 將整型數(shù)據(jù)直接轉(zhuǎn)換為浮點(diǎn)型,數(shù)值保持不變 布爾型 浮點(diǎn)型 TRUE 轉(zhuǎn)換成浮點(diǎn)型數(shù)字“1”,false 轉(zhuǎn)換成浮點(diǎn)型數(shù)字“0”

                  字符串 浮點(diǎn)型 (1)字符串為整型數(shù)字,直接轉(zhuǎn)換成相應(yīng)的浮點(diǎn)型數(shù)字

                  (2)字符串以數(shù)字開(kāi)頭,轉(zhuǎn)換時(shí)去除數(shù)字后面的部分, 然后按照規(guī)則1 進(jìn)行處理

                  (3)字符串以帶小數(shù)點(diǎn)的數(shù)字開(kāi)頭,轉(zhuǎn)換時(shí)直接去除數(shù) 字后面的部分,只保留數(shù)字部分

                  (4)字符串以非數(shù)字內(nèi)容開(kāi)頭,直接轉(zhuǎn)換為0 將其他數(shù)據(jù)類型轉(zhuǎn)換為浮點(diǎn)型的示例代碼如下。 <?php

                  $a = "123";

                  $b = "123sunyang";

                  $c = "2.32";

                  $d = "2.32abc";

                  $e = "sunyang123";

                  $f = TRUE;

                  $g = FALSE;

                  $h = 1234;

                  echo (float)$a."<br>"; echo (float)$b."<br>"; echo (float)$c."<br>"; echo (float)$d."<br>"; echo (float)$e."<br>"; echo (float)$f."<br>"; echo (float)$g."<br>"; echo (float)$h."<br>"; ?>

                  在瀏覽器中輸出為: 123

                  123

                  2.32

                  2.32

                  0

                  1

                  0

                  1234  

                  3)、其他數(shù)據(jù)類型轉(zhuǎn)換為布爾型的規(guī)則

                  其他數(shù)據(jù)類型轉(zhuǎn)換為布爾型 原類型 目標(biāo)類型 轉(zhuǎn)換規(guī)則 整型 布爾型 0 轉(zhuǎn)換為false,非零的其他整型數(shù)字轉(zhuǎn)換為true

                  浮點(diǎn)型 布爾型 0.0 轉(zhuǎn)換為false,非零的其他浮點(diǎn)型數(shù)字轉(zhuǎn)換為true

                  字符串 布爾型 空字符串或字符串內(nèi)容為零轉(zhuǎn)換為false,其他字符串轉(zhuǎn)

                  換為true

                  NULL 布爾型 直接轉(zhuǎn)換為false 數(shù)組 布爾型 空數(shù)組轉(zhuǎn)換為false,非空數(shù)組轉(zhuǎn)換為true 將其他數(shù)據(jù)類型轉(zhuǎn)換為布爾型的示例代碼如下所示。

                  <?php

                  $a = 0;

                  $b = 123;

                  $c = 0.0;

                  $d = 3.14;

                  $e = "";

                  $f = "0";

                  $g = "TRUE";

                  $h = array();

                  $i = array("a","b","c"); $j = NULL;

                  echo var_dump((boolean)$a)."<br>";

                  echo var_dump((boolean)$b)."<br>"; echo var_dump((boolean)$c)."<br>"; echo var_dump((boolean)$d)."<br>"; echo var_dump((boolean)$e)."<br>"; echo var_dump((boolean)$f)."<br>"; echo var_dump((boolean)$g)."<br>"; echo var_dump((boolean)$h)."<br>";

                  echo var_dump((boolean)$i)."<br>"; echo var_dump((boolean)$j); ?>

                  在瀏覽器中輸出為:

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(false)

                  4)、其他數(shù)據(jù)類型轉(zhuǎn)換為字符串的規(guī)則 其他數(shù)據(jù)類型轉(zhuǎn)換為字符串

                  原類型 目標(biāo)類型轉(zhuǎn)換規(guī)則

                  整型 字符串 轉(zhuǎn)換時(shí)直接在整型兩邊加上雙引號(hào)作為轉(zhuǎn)換后的結(jié)果

                  浮點(diǎn)型 字符串 轉(zhuǎn)換時(shí)直接在浮點(diǎn)型兩邊加上雙引號(hào)作為轉(zhuǎn)換后的結(jié)果

                  布爾型 字符串 true 轉(zhuǎn)換為字符串“1”,false 轉(zhuǎn)換為字符串“0”

                  數(shù)組 字符串 直接轉(zhuǎn)換為字符串“Array” 對(duì)象 字符串 直接轉(zhuǎn)換為字符串“Object” NULL 字符串 直接轉(zhuǎn)換為空字符串 將其他數(shù)據(jù)類型轉(zhuǎn)換為字符串的示例代碼如下。 <?php

                  $a = 123;

                  $b = 3.14;

                  $c = TRUE;

                  $d = FALSE;

                  $e = array("abc");

                  $f = NULL;

                  echo (string)$a."<br>";

                  echo (string)$b."<br>";

                  echo (string)$c."<br>";

                  echo (string)$d."<br>";

                  echo (string)$e."<br>";

                  echo (string)$f;

                  ?>

                  在瀏覽器中輸出為:

                  123

                  3.14

                  1

                  Array

                  5)、其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)組的規(guī)則 其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)組

                  原類型 目標(biāo)類型轉(zhuǎn)換規(guī)則

                  整型

                  浮點(diǎn)型

                  布爾型

                  字符串

                  數(shù)組 將這幾個(gè)數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為數(shù)組時(shí), 得到的數(shù)組只包含一個(gè)數(shù)據(jù)元素, 該數(shù)據(jù)就是未轉(zhuǎn)換前的數(shù)據(jù), 并且該數(shù)據(jù)的數(shù)據(jù)類型也與未轉(zhuǎn)換前相同 對(duì)象 數(shù)組 轉(zhuǎn)換時(shí)將對(duì)象的成員變量的名稱作為各數(shù)組元素的key,而轉(zhuǎn)換后數(shù)組每個(gè)key 的value 都為空

                  (1)如果成員變量為私有的(private), 則轉(zhuǎn)換后key 的名稱為“類名+成員變量名”

                  (2)如果成員變量為公有的(public), 則轉(zhuǎn)換后key 的名稱為“成員變量名”

                  (3)如果成員變量為受保護(hù)的(protected), 則轉(zhuǎn)換后key 的名稱為“*+成員變量名” NULL 數(shù)組 直接轉(zhuǎn)換為一個(gè)空數(shù)組 將其他數(shù)據(jù)類型轉(zhuǎn)換為數(shù)組的示例代碼如下。 <?php

                  $a = 123;

                  $b = 3.14;

                  $c = TRUE;

                  $d = "Hello";

                  class A {

                  private $private;

                  public $public;

                  protected $protected;

                  }

                  $e = new A();

                  $f = NULL;

                  echo var_dump((array)$a)."<br>"; echo var_dump((array)$b)."<br>"; echo var_dump((array)$c)."<br>"; echo var_dump((array)$d)."<br>"; echo var_dump((array)$e)."<br>"; echo var_dump((array)$f); ?>

                  在瀏覽器中輸出為:

                  array(1) { [0]=> int(123) } array(1) { [0]=> float(3.14) } array(1) { [0]=> bool(true) } array(1) { [0]=> string(5) "Hello" } array(3) { ["Aprivate"]=> NULL ["public"]=> NULL ["*protected"]=> NULL }

                  array(0) { }

                  6)、其他數(shù)據(jù)類型轉(zhuǎn)換為對(duì)象的規(guī)則 其他數(shù)據(jù)類型轉(zhuǎn)換為對(duì)象

                  原類型 目標(biāo)類型 轉(zhuǎn)換規(guī)則 整型

                  浮點(diǎn)型

                  布爾型

                  字符串

                  對(duì)象 將其他類型變量轉(zhuǎn)換為對(duì)象時(shí), 將會(huì)新建一個(gè)名為“scalar”的屬性, 并將原變量的值存儲(chǔ)在這個(gè)屬性中 數(shù)組 對(duì)象 將數(shù)組轉(zhuǎn)換為對(duì)象時(shí),數(shù)組的key 作為對(duì)象成員變量的名稱,對(duì)應(yīng)各個(gè)key 的value 作為對(duì)象成員變量保存的值 NULL 對(duì)象 直接轉(zhuǎn)換為一個(gè)空對(duì)象 將其他數(shù)據(jù)類型轉(zhuǎn)換為對(duì)象的示例代碼如下。 <?php

                  $a = 123;

                  $b = 3.14;

                  $c = TRUE;

                  $d = "Hello";

                  $e = array("a"=>aaa,"b"=>bbb,"c"=>ccc); $f = NULL;

                  echo var_dump((object)$a)."<br>"; echo var_dump((object)$b)."<br>"; echo var_dump((object)$c)."<br>";

                  echo var_dump((object)$d)."<br>";

                  echo var_dump((object)$e)."<br>";

                  echo var_dump((object)$f);

                  ?>

                  在瀏覽器中輸出為:

                  object(stdClass)#1 (1) { ["scalar"]=> int(123) } 29

                  object(stdClass)#1 (1) { ["scalar"]=> float(3.14) } object(stdClass)#1 (1) { ["scalar"]=> bool(true) } object(stdClass)#1 (1) { ["scalar"]=> string(5) "Hello" }

                  object(stdClass)#1 (3) { ["a"]=> string(3) "aaa" ["b"]=> string(3) "bbb" ["c"]=> string(3) "ccc" }

                  object(stdClass)#1 (0) { }

                  六、變量的常用函數(shù)

                  1、變量轉(zhuǎn)換函數(shù)

                  在PHP 強(qiáng)制轉(zhuǎn)換中,除了上述方法外,還可應(yīng)用函數(shù)進(jìn)行轉(zhuǎn)換,常用的函數(shù)有

                  以下幾種。

                  1)、settype()函數(shù)

                  settype()函數(shù)將變量設(shè)置為指定類型,當(dāng)某個(gè)變量用settype()函數(shù)設(shè)定后,該變量的類型就發(fā)生改變,其語(yǔ)法如下:

                  bool settype (mixed $var, string $type) 將變量var 的類型設(shè)置成type。type 的可能值為:“boolean”(或?yàn)椤癰ool”),“integer”(或?yàn)椤癷nt”),“float”,“string”,“array”,“object”,“null”。如果成功則返回TRUE,失敗則返回FALSE。

                  使用settype()函數(shù)的示例代碼如下。

                  <?php

                  $a = "5.6kg";

                  $b = true;

                  settype($a,"float")."<br>";

                  settype($b,"string")."<br>";

                  echo $a."<br>";

                  echo $b;

                  ?>

                  在瀏覽器中輸出為:

                  5.6

                  1

                  30

                  可以看出,原來(lái)為字符串的$a 經(jīng)settype 設(shè)置后,轉(zhuǎn)換為浮點(diǎn)數(shù)“5.6”。原來(lái)為布爾值的$b 經(jīng)settype 設(shè)置后,true 轉(zhuǎn)換為字符串“1”。 2)、intval()函數(shù)、floatval()函數(shù)、strval()函數(shù) 這三個(gè)函數(shù)是將原變量通過(guò)轉(zhuǎn)換后得到新類型的新變量,原變量的類型和值都不

                  變,括號(hào)中放入原變量。

                  使用intval()函數(shù)、floatval()函數(shù)、strval()函數(shù)的示例代碼如下。

                  <?php

                  $a = "5.6kg";

                  $b = 2001;

                  $c = intval($a);

                  $d = floatval($a);

                  $e = strval($b);

                  echo $a."<br>";

                  echo $b."<br>";

                  echo $c."<br>";

                  echo $d."<br>";

                  echo $e;

                  ?>

                  在瀏覽器中輸出為:

                  5.6kg

                  2001

                  5

                  5.6

                  2001

                  可以看出,原變量a,b 并沒(méi)有改變,變量c 為整數(shù)5,變量d 為浮點(diǎn)數(shù)5.6,變量e 為字符串2001,而原變量b 為整數(shù)2001。 2、變量檢查函數(shù)

                  1)、isset()函數(shù)

                  isset()函數(shù)用于檢查某個(gè)變量是否存在,如果存在則返回TRUE,否則返回

                  31

                  FALSE。

                  使用isset()函數(shù)的示例代碼如下。 <?php

                  $a = "2001年";

                  $c = 3.14;

                  echo isset($a)."<br>";

                  echo isset($b)."<br>";

                  echo isset($c);

                  ?>

                  在瀏覽器中輸出為:

                  1

                  1

                  因$a,$c 真實(shí)存在,它返回布爾值TRUE,在瀏覽器是顯示為“1”,而$b 并不存在,它返回布爾值FALSE,在瀏覽器是顯示為空。

                  1)、empty ()函數(shù)

                  isset()函數(shù)用于檢查某個(gè)變量的值是否為空(""、0、"0"、NULL、FALSE、array()、

                  var $var 以及沒(méi)有任何屬性的對(duì)象都將被認(rèn)為是空),如果為空則返回TRUE,

                  否則返回FALSE。 使用empty ()函數(shù)的示例代碼如下。

                  <?php

                  $a = "";

                  $b = 3.14;

                  $c = 0;

                  echo empty($a)."<br>";

                  echo empty($b)."<br>";

                  echo empty($c);

                  ?>

                  在瀏覽器中輸出為:

                  1

                  1

                  因$a,$c 為空,它返回布爾值TRUE,在瀏覽器是顯示為“1”,而$b 并不為空,它返回布爾值FALSE,在瀏覽器是顯示為空。

                  3、變量判斷函數(shù)

                  PHP 中有一些函數(shù)可以判斷變量的類型,下面將一些常用的變量判斷函數(shù)總結(jié)

                  如下。

                  判斷變量類型的函數(shù) 函數(shù)名 作用 判斷結(jié)果

                  is_int()

                  is_integer()

                  檢測(cè)變量是否是整數(shù) 若變量為整數(shù)類型則返回true, 否則返回 false

                  is_float()

                  is_double()

                  檢測(cè)變量是否是浮點(diǎn)型 若變量為浮點(diǎn)型則返回true,否 則返回 false

                  is_bool() 檢測(cè)變量是否是布爾型 若變量為布爾型則返回true,否

                  則返回 false

                  is_string() 檢測(cè)變量是否是字符串 若變量為字符串則返回true,否

                  則返回 false

                  is_array () 檢測(cè)變量是否是數(shù)組 若變量為數(shù)組則返回true,否則

                  返回 false

                  is_object() 檢測(cè)變量是否是一個(gè)對(duì)象 若變量為對(duì)象則返回true,否則

                  返回 false

                  is_resource() 檢測(cè)變量是否為資源類型 若變量為資源類型則返回true,

                  否則返回 false

                  is_null() 檢測(cè)變量是否為NULL 若變量為NULL 則返回true,否則返回 false 使用判斷變量類型函數(shù)的示例代碼如下。 <?php

                  $a = "8";

                  $b = 3.14;

                  $c = 9;

                  $d = array(2,4,6);

                  echo is_string($a).'<br>';

                  echo is_float($b).'<br>';

                  echo is_ string ($c).'<br>';

                  echo is_array($d);

                  ?>

                  在瀏覽器中輸出為:

                  1

                  1

                  1

                  4、變量獲取函數(shù)

                  1)、gettype()函數(shù)

                  本函數(shù)用來(lái)取得變量的類型。返回的類型字符串可能為下列字符串其中之一:

                  boolean、integer、double、string、array、object、resource、NULL、unknowntype。

                  使用gettype ()函數(shù)的示例代碼如下。 <?php

                  $a = "大家好~";

                  $b = 3.14;

                  $c = 9;

                  $d = array(2,4,6);

                  echo gettype($a).'<br>';

                  echo gettype($b).'<br>';

                  echo gettype($c).'<br>';

                  echo gettype($d);

                  ?>

                  在瀏覽器中輸出為:

                  string

                  double

                  integer

                  array

                  我們一般不要使用gettype()來(lái)測(cè)試某種類型,因?yàn)槠浞祷氐淖址谖磥?lái)的版本中可能需要改變。此外,由于包含了字符串的比較,它的運(yùn)行也是較慢的。使用 is_* 函數(shù)代替。

                  2)、var_dump()函數(shù)

                  var_dump()函數(shù)打印變量的相關(guān)信息,此函數(shù)顯示關(guān)于一個(gè)或多個(gè)表達(dá)式的結(jié)

                  構(gòu)信息,包括表達(dá)式的類型與值。數(shù)組將遞歸展開(kāi)值,通過(guò)縮進(jìn)顯示其結(jié)構(gòu)。

                  使用var_dump()函數(shù)的示例代碼如下。

                  <?php

                  $a = "大家好~";

                  $b = 3.14;

                  $c = 9;

                  $d = array(2,4,6);

                  echo var_dump($a).'<br>';

                  echo var_dump($b).'<br>';

                  echo var_dump($c).'<br>';

                  echo var_dump($d);

                  ?>

                  在瀏覽器中輸出為:

                  string(8) "大家好~"

                  float(3.14)

                  int(9)

                  array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(6) }

                  3)、var_export()函數(shù)

                  var_export()函數(shù)輸出或返回一個(gè)變量的字符串表示,此函數(shù)返回關(guān)于傳遞給該函數(shù)的變量的結(jié)構(gòu)信息,它和var_dump()類似,不同的是其返回的表示是合法的PHP 代碼。您可以通過(guò)將函數(shù)的第二個(gè)參數(shù)設(shè)置為TRUE,從而返回變量的表示。

                  使用var_export()函數(shù)的示例代碼如下。 <?php

                  $a = "8";

                  $b = 3.14;

                  $c = 9;

                  $d = array(2,4,6);

                  echo var_export($a).'<br>';

                  echo var_export($b).'<br>';

                  echo var_export($c).'<br>';

                  echo var_export($d);

                  ?>

                  在瀏覽器中輸出為:

                  '大家好~'

                  3.14

                  9

                  array ( 0 => 2, 1 => 4, 2 => 6, )

                  一般在調(diào)試數(shù)組的時(shí)候,多用var_export(),因?yàn)関ar_dump()沒(méi)有格式,而

                  var_export()是有換行的,看起來(lái)比較舒服一些。而在調(diào)試單個(gè)變量的時(shí)候多用var_dump(),因?yàn)関ar_dump()可以打印出變量類型和長(zhǎng)度。 4、變量銷毀函數(shù)

                  unset()函數(shù)

                  php 中unset()函數(shù)是用來(lái)銷毀變量的,但很多時(shí)候,這個(gè)函數(shù)只把變量給銷毀了,內(nèi)存中存放的該變量的值仍然沒(méi)有銷毀,也就是沒(méi)能達(dá)到我們想要的釋放內(nèi)存的效果。 如果在函數(shù)中unset()一個(gè)通過(guò)引用傳遞的變量,則只是局部變量被銷毀,而在調(diào)用環(huán)境中的變量將保持調(diào)用unset()之前一樣的值。使用unset ()函數(shù)的示例代碼如下。

                  <?php

                  $a = "大家好~";

                  $b = 3.14;

                  $c = 9;

                  $d = array(2,4,6);

                  $e = true;

                  unset($b);

                  unset($d);

                  echo ($a).'<br>';

                  echo ($b).'<br>';

                  echo ($c).'<br>';

                  echo ($d).'<br>';

                  echo ($e);

                  ?>

                  在瀏覽器中輸出為:

                  大家好~

                  9

                  1

                  變量b 和d 被銷毀,所以沒(méi)有被輸出。

                  第五節(jié) PHP 常量

                  一、自定義常量

                  PHP 中使用define()函數(shù)定義常量。define(常量名,常量值),常量命名方法與變 量命名相同,以字母或下劃線開(kāi)頭,常量名稱區(qū)分大小寫,但按照慣例常量名稱全部大寫,如果設(shè)置為true 則不區(qū)分大小寫,如果設(shè)置為false 則區(qū)分大小寫,如果沒(méi)有設(shè)置該參數(shù),則取默認(rèn)值false。一個(gè)常量一旦被定義,就不能再改變或者取消定義。

                  37

                  <?php

                  define("CONSTANT", "你好~");

                  echo CONSTANT."<br>";

                  define("CONSTANT", "你在干什么,");

                  echo CONSTANT."<br>";

                  echo Constant;

                  ?>

                  在瀏覽器中輸出為:

                  你好~

                  你好~

                  Constant

                  我們?cè)赑HP 中定義了一個(gè)常量名“CONSTANT”,并給予值“你好~”,因此在瀏覽器中輸出了“你好~”,而我們又給常量“CONSTANT”另一值 “你在干什么,”,因常量定義后其值不能被改變,因此瀏覽器中第二個(gè)輸出仍為“你好~”,而不是“你在干什么,”。我們將“echo CONSTANT”改成“echo Constant”,因常量區(qū)分大小寫,“Constant”并不是常量“CONSTANT”,因此“Constant”被當(dāng)作內(nèi)容輸出來(lái),即第三個(gè)輸出為“Constant”。

                  二、預(yù)定義常量 與預(yù)定義變量一樣,PHP 也提供了一些默認(rèn)的預(yù)定義常量供使用。在程序中可以隨時(shí)應(yīng)用這些預(yù)定義常量,但是我們不能任意更改這些常量的值。PHP 中常用的一些默認(rèn)預(yù)定義常量及其作用如下表所示。 預(yù)定義常量常量 作用__FILE__ 存儲(chǔ)當(dāng)前腳本的絕對(duì)路徑及文件名稱 __LINE__ 存儲(chǔ)該常量所在的行號(hào)__FUNCTION__ 存儲(chǔ)該常量所在的函數(shù)名稱 __CLASS__ 存儲(chǔ)該常量所在的類的名稱__METHOD__ 存儲(chǔ)該常量所在的類的方法名稱 PHP_VERSION 存儲(chǔ)當(dāng)前PHP 的版本號(hào)PHP_OS 存儲(chǔ)當(dāng)前服務(wù)器的操作系統(tǒng)

                  第六節(jié) 運(yùn)算符

                  一個(gè)復(fù)雜的PHP 程序往往是由大量的表達(dá)式所構(gòu)成的,而運(yùn)算符則是表達(dá)式的核心,也稱作操作符。只有掌握了PHP 表達(dá)式和運(yùn)算符的用法,才能夠更好地使用PHP 語(yǔ)言進(jìn)行開(kāi)發(fā)設(shè)計(jì)。PHP 中常用的運(yùn)算符包括算術(shù)運(yùn)算符、賦值運(yùn)算、比較運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、字符串運(yùn)算符和數(shù)組運(yùn)算符,下面將分別介紹。

                  一、算術(shù)運(yùn)算符

                  算術(shù)運(yùn)算符號(hào),就是用來(lái)處理四則運(yùn)算的符號(hào),這是最簡(jiǎn)單,也最常用的符號(hào),尤其是數(shù)字的處理,幾乎都會(huì)使用到算術(shù)運(yùn)算符,其中取模就是取余數(shù)的意思。PHP 提供的算術(shù)運(yùn)算符及其作用如下表所示。 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 名稱 應(yīng)用格式

                  + 加法運(yùn)算符 $a + $b

                  - 減法運(yùn)算符 $a - $b

                  * 乘法運(yùn)算符 $a * $b

                  / 除法運(yùn)算符 $a / $b

                  % 取模運(yùn)算符 $a % $b

                  使用算術(shù)運(yùn)算符的示例代碼如下。

                  <?php

                  $a = 8;

                  $b = 3;

                  echo $a+$b."<br>";

                  echo $a-$b."<br>";

                  echo $a*$b."<br>";

                  echo $a/$b."<br>";

                  echo $a%$b;

                  ?>

                  在瀏覽器中輸出為:

                  39

                  11

                  5

                  24

                  2.66666666667

                  2

                  二、遞增,遞減運(yùn)算符

                  遞增,遞減運(yùn)算符是可以對(duì)操作系統(tǒng)(可以是數(shù)字或字符)進(jìn)行遞增、遞減操作的一種運(yùn)算符。PHP 提供的遞增,遞減運(yùn)算符及其作用如下表所示。

                  遞增,遞減運(yùn)算符

                  示例 名稱 說(shuō)明

                  $i++ 后加 返回$i,然后將$i 的值加1 ++$i 前加 $i 的值加1,然后返回$i $i-- 后減 返回$i,然后將$i 的值減1 --$i 前減 $i 的值減1,然后返回$i 使用遞增,遞減運(yùn)算符的示例代碼如下。 <?php

                  $a = 8;

                  $b = 8;

                  $c = 3;

                  $d = 3;

                  echo $a++."<br>";

                  echo ++$b."<br>";

                  echo $c--."<br>";

                  echo --$d;

                  ?>

                  在瀏覽器中輸出為:

                  8

                  9

                  3

                  2

                  三、賦值運(yùn)算符

                  基本的賦值運(yùn)算符是“=”。它并不是我們一直理解的“等于”號(hào)。它實(shí)際上意

                  味

                  著把右邊表達(dá)式的值賦給左邊的變量。如$a=3,并不是$a 等于3,而是將整數(shù)

                  3 賦給$a。然而在PHP 中不僅僅只有這一種賦值運(yùn)算符,PHP 提供的賦值運(yùn)算符及其用法如下表所示。 賦值運(yùn)算符賦值運(yùn)算符 用法 等價(jià)格式 = $a = 10 $a = 10 += $a += 10 $a = $a + 10 -= $a -= 10 $a = $a - 10 *= $a *= 10 $a = $a* 10 /= $a /= 10 $a = $a / 10 %= $a %= 10 $a = $a % 10 .= $a .= “abc” $a = $a.”abc” 使用賦值運(yùn)算符的示例代碼如下。 <?php

                  $a = 6;

                  $b = 8;

                  $c = 7;

                  $d = 5;

                  $e = 4;

                  $f = "大家";

                  echo($a+=3)."<br>"; echo($b-=3)."<br>"; echo($c*=3)."<br>"; echo($d/=3)."<br>"; echo($e%=3)."<br>"; echo($f.="好!");

                  ?>

                  在瀏覽器中輸出為:

                  9

                  5

                  21

                  1.66666666667

                  1

                  大家好!

                  四、比較運(yùn)算符

                  比較運(yùn)算符也稱條件運(yùn)算符或關(guān)系運(yùn)算符,用于比較兩個(gè)數(shù)據(jù)的值并返回一個(gè)布

                  爾類型的結(jié)果。PHP 提供的比較運(yùn)算符及其用法如下表所示。

                  比較運(yùn)算符 比較運(yùn)算符 名稱 用法 說(shuō)明 == 等于 $a == $b 如果變量a 等于變量b,則返回true

                  === 全等 $a === $b 如果變量a 等于變量b,并且它們的數(shù)據(jù)類

                  型也相同,則返回true

                  !=或<> 不等 $a != $b

                  或$a<>$b 如果變量a 不等于變量b,則返回true !== 非全等 $a !== $b 如果變量a 不等于變量b,或者它們的數(shù)據(jù)類型不同,則返回true

                  < 小與 $a < $b 如果變量a 小于變量b,則返回true

                  > 大于 $a > $b 如果變量a 大于變量b,則返回true

                  <= 小于等于 $a <= $b 如果變量a 小于或等于變量b,則返回true

                  >= 大于等于 $a>=$b 如果變量a 大于或等于變量b,則返回true

                  使用比較運(yùn)算符的示例代碼如下。 <?php

                  $a = 5;

                  $b = 3;

                  $c = "5";

                  $d =5.0;

                  echo var_dump($a==$b)."<br>"; echo var_dump($c==$d)."<br>"; echo var_dump($a===$c)."<br>"; echo var_dump($a!=$b)."<br>"; echo var_dump($a!=$c)."<br>"; echo var_dump($a!==$d)."<br>"; echo var_dump($a<$b)."<br>"; echo var_dump($a>$b)."<br>"; echo var_dump($a<=$b)."<br>"; echo var_dump($a>=$b); ?>

                  在瀏覽器中輸出為:

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  五、邏輯運(yùn)算符

                  邏輯運(yùn)算符用于處理邏輯運(yùn)算操作,只能操作布爾型值。PHP 提供的邏輯運(yùn)算

                  符及其用法如下表所示。

                  邏輯運(yùn)算符

                  邏輯運(yùn)算符 名稱 用法 說(shuō)明 and 或&& 邏輯與 $a and $b 如果$a 和$b 兩個(gè)都為true 時(shí)返回true或 $a&&$b

                  or 或|| 邏輯或 $a or $b 或$a||$b

                  如果$a 和$b 任何一個(gè)為true 時(shí)返回true xor 邏輯異或 $a xor $b 如果$a 和$b 只有一個(gè)為true 時(shí)返回true

                  ! 邏輯非 !$a 如果$a 為false 時(shí)返回true 使用邏輯運(yùn)算符的示例代碼如下。 <?php

                  $a = true;

                  $b = true;

                  $c = false;

                  echo var_dump($a&&$b)."<br>"; echo var_dump($a&&$c)."<br>"; echo var_dump($a||$b)."<br>"; echo var_dump($a||$c)."<br>"; echo var_dump($a xor $b)."<br>"; echo var_dump($a xor $c)."<br>"; echo var_dump(!$a)."<br>"; echo var_dump(!$c);

                  ?>

                  在瀏覽器中輸出為:

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(false)

                  bool(true)

                  六、位運(yùn)算符

                  位運(yùn)算符主要應(yīng)用于整型數(shù)據(jù)的運(yùn)算過(guò)程。當(dāng)表達(dá)式包含位運(yùn)算符時(shí),運(yùn)算時(shí)會(huì)先將各個(gè)整型運(yùn)算數(shù)轉(zhuǎn)換為相應(yīng)的二進(jìn)制格式,然后再進(jìn)行位運(yùn)算。PHP 提供的位運(yùn)算符及其用法如下表所示。

                  位運(yùn)算符位運(yùn)算符 名稱 用法 說(shuō)明

                  & 與操作符 $a & $b 將在$a 和$b 中都為1 的位設(shè)為1 | 或操作符 $a | $b 將在$a 或者$b 中為1 的位設(shè)為1 ^ 異或操作符 $a ^ $b 將在$a 和$b 中不同的位設(shè)為1 ~ 非操作符 ~$a 將$a 中為0 的位設(shè)為1,1 的位設(shè)為0 << 左移操作符 $a << 2 將$a 中的位向左移動(dòng)2 次,空出的位置用0

                  (每一次移動(dòng)都表示“乘以2”)

                  >> 右移操作符 $a >> 2 將$a 中的位向右移動(dòng)2 次,多出的位置截

                  掉(每一次移動(dòng)都表示“除以 2”)

                  使用位運(yùn)算符的示例代碼如下。

                  <?php

                  $a = 7; //二進(jìn)制為00000111

                  $b = 2; //二進(jìn)制為00000010

                  echo ($a&$b)."<br>"; //與操作后為00000010,轉(zhuǎn)十進(jìn)制為2

                  echo ($a|$b)."<br>"; //或操作后為00000111,轉(zhuǎn)十進(jìn)制為7

                  echo ($a^$b)."<br>"; //異或操作后為00000101,轉(zhuǎn)十進(jìn)制為5

                  echo (~$a)."<br>"; //非操作后為11111000,______________轉(zhuǎn)十進(jìn)制為-8

                  echo ($a<<$b)."<br>"; //向左位移2個(gè)單位后為00011100,轉(zhuǎn)十進(jìn)制為28

                  echo ($a>>$b)."<br>"; //向右位移2個(gè)單位后為00000001,轉(zhuǎn)十進(jìn)制為1

                  ?>

                  在瀏覽器中輸出為:

                  2

                  7

                  5

                  45

                  -8

                  28

                  1

                  其他都好理解,對(duì)于非操作后為11111000,轉(zhuǎn)十進(jìn)制為什么-8,做一下解釋。

                  電腦中一般32 位,為了方便,我們按8 位說(shuō)明(8 的十進(jìn)制為1000,其32 位為00000000000000000000000000001000,其8 位為00001000)。當(dāng)我們指定一個(gè)數(shù)是無(wú)符號(hào)類型時(shí),那么其最高位的1 或0,和其它位一樣,用來(lái)表示該數(shù)的大小。當(dāng)我們指定一個(gè)數(shù)是有符號(hào)類型時(shí),最高數(shù)稱為“符號(hào)位”。為1 時(shí),表示該數(shù)為負(fù)值,為0 時(shí)表示為正值。

                  負(fù)數(shù)如何轉(zhuǎn)換成二進(jìn)制,負(fù)數(shù)轉(zhuǎn)為二進(jìn)制的步驟為:第一步,求出其正數(shù)的二進(jìn)

                  制,如-8 的正數(shù)(8)的二進(jìn)制為00001000。第二步,求出其反碼,即1 變0,

                  0 變1,00001000 的反碼是11110111。第三步,得出其補(bǔ)碼,即反碼加1,要

                  記住逢2 進(jìn)1,11110111 的補(bǔ)碼為11111000,因此-8 的二進(jìn)制為11111000。

                  因?yàn)槲覀冎v的是8 位,而實(shí)際上是32 位,前24 位全都是1,上面講的8 的二

                  進(jìn)制00001000 前24 位都是0。

                  為什么11111000 是-8 而不是248,我們將248 轉(zhuǎn)為二進(jìn)制是11111000,但其

                  前24 位都為0,而-8 的二進(jìn)制前24 位都為1。如果單從8 位來(lái)講,248 的二進(jìn)制是無(wú)符號(hào)類型,它沒(méi)有負(fù)數(shù),取值范圍為0,255(00000000,11111111)共

                  256 個(gè)數(shù),而-8 的二進(jìn)制是有符號(hào)類型,取值范圍為-128,127(負(fù)數(shù)10000000,

                  11111111,00000000,正數(shù)00000001,01111111)共256 個(gè)數(shù)。

                  在32 位操作系統(tǒng)中使用位運(yùn)算符編程的時(shí)候,右移不要超過(guò)32 位,左移結(jié)果不要超過(guò)32 位,否則會(huì)發(fā)生數(shù)據(jù)溢出。 如果在開(kāi)發(fā)過(guò)程中一定要使用位運(yùn)算符,則建議開(kāi)發(fā)人員保證所有參與位運(yùn)算的數(shù)據(jù)都為整型數(shù)據(jù),否則運(yùn)算結(jié)果可能產(chǎn)生錯(cuò)誤。 位運(yùn)算符也可用于包含字符串的表達(dá)式,但是這種情況很少見(jiàn)。

                  七、字符串運(yùn)算符

                  字符串運(yùn)算符也稱連接運(yùn)算符,用于處理字符串的相關(guān)操作。在PHP 中提供了兩個(gè)字符串運(yùn)算符。第一個(gè)是連接運(yùn)算符(“.”),它返回其左右參數(shù)連接后的字符串。第二個(gè)是連接賦值運(yùn)算符(“.=”),它將右邊參數(shù)附加到左邊的參數(shù)后。

                  例如下面的例子。

                  <?php

                  $a = "今天";

                  $b = $a . "是星期一,";

                  echo $b."<br>";

                  $c = "明天";

                  $c .= "是星期二。";

                  echo ($c);

                  ?>

                  在瀏覽器中輸出為:

                  今天是星期一,

                  明天是星期二。

                  八、數(shù)組運(yùn)算符

                  數(shù)組運(yùn)算符應(yīng)用于數(shù)組的一些相關(guān)操作。PHP 提供的數(shù)組運(yùn)算符及其用法如下

                  表所示。

                  數(shù)組運(yùn)算符 數(shù)組運(yùn)算符 名稱 用法 說(shuō)明

                  + 聯(lián)合 $a+$b $a 與$b 保存的數(shù)組聯(lián)合 == 相等 $a==$b 如果$a 與$b 保存的數(shù)組具有相同鍵值,則

                  返回true

                  === 全等 $a===$b 如果$a 與$b 保存的數(shù)組具有相同鍵值,且

                  順序和數(shù)據(jù)類型一致則返回true !=或<> 不等 $a!=$b 或

                  $a<>$b

                  如果$a 與$b 保存的數(shù)組不具有相同鍵值, 則返回true

                  !== 不全等 $a!==$b 如果$a 與$b 保存的數(shù)組不具有相同鍵值,

                  且順序和數(shù)據(jù)類型也不一致,則返回true 應(yīng)用數(shù)組運(yùn)算符的示例程序如下。 <?php

                  $a = array("1"=>3,"2"=>5); $b = array("color"=>"red","shape"=>"round"); 47

                  $c = array("1"=>"3","2"=>"5"); echo var_dump($a+$b)."<br>"; echo var_dump($a==$c)."<br>"; echo var_dump($a===$c)."<br>"; echo var_dump($a!=$b)."<br>"; echo var_dump($a!==$c);

                  ?>

                  在瀏覽器中輸出為:

                  array(4) { [1]=> int(3) [2]=> int(5) ["color"]=> string(3) "red"

                  ["shape"]=>

                  string(5) "round" }

                  bool(true)

                  bool(false)

                  bool(true)

                  bool(true)

                  九、錯(cuò)誤抑制運(yùn)算符

                  當(dāng)PHP 表達(dá)式產(chǎn)生錯(cuò)誤而我們又不想將錯(cuò)誤信息顯示在頁(yè)面上時(shí),可使用錯(cuò)誤

                  抑制運(yùn)算符。當(dāng)表達(dá)式的前面被加上“@”這個(gè)運(yùn)算符以后,該表達(dá)式可能產(chǎn)生的任何錯(cuò)誤信息都會(huì)被忽略。使用錯(cuò)誤抑制運(yùn)算符的示例代碼如下。

                  <?php

                  $a = 5;

                  $b = 0;

                  echo ($a/$b);

                  ?>

                  在瀏覽器中輸出為:

                  Warning: Division by zero in D:wampwwwmyweb?01.php on line 4

                  瀏覽器出現(xiàn)了錯(cuò)誤提示,如果將在($a/$b)前面加上“@”這個(gè)符號(hào),則再次運(yùn)

                  行這個(gè)程序的時(shí)候,就不會(huì)得到任何錯(cuò)誤信息。 <?php

                  $a = 5;

                  $b = 0;

                  echo @($a/$b);

                  ?>

                  在程序的開(kāi)發(fā)調(diào)試階段,不應(yīng)該使用錯(cuò)誤抑制運(yùn)算符,以便能夠快速地發(fā)現(xiàn)錯(cuò)誤信息。而在程序的發(fā)布階段,可加上錯(cuò)誤抑制運(yùn)算符,以防止程序出現(xiàn)不友好的錯(cuò)誤信息。

                  十、類型運(yùn)算符

                  PHP5 提供了一個(gè)類型運(yùn)算符“instanceof”,在PHP 5 之前通過(guò)is_a()實(shí)現(xiàn),現(xiàn)在已經(jīng)不推薦使用了。這個(gè)運(yùn)算符用于判斷指定對(duì)象是否來(lái)自于指定的類。應(yīng)用類型運(yùn)算符的示例代碼如下。

                  <?php

                  class A{} //定義一個(gè)類A

                  $a = new A(); //實(shí)例化一個(gè)類A的對(duì)象a

                  var_dump($a instanceof A); //使用類型運(yùn)算符判斷a是否為類A的實(shí)例

                  ?>

                  在瀏覽器中輸出為:

                  bool(true)

                  十一、執(zhí)行運(yùn)算符

                  執(zhí)行運(yùn)算符使用“`”(鍵盤數(shù)字1 左邊的按鍵)符號(hào)。使用了這個(gè)運(yùn)算符以后,該運(yùn)算符內(nèi)的字符串將會(huì)被當(dāng)做DOS 命令行來(lái)處理。應(yīng)用執(zhí)行運(yùn)算符的示例代碼如下。

                  <?php

                  $a = `dir c:AppServ`;

                  echo $a;

                  ?>

                  在瀏覽器中輸出為:

                  驅(qū)動(dòng)器 C 中的卷沒(méi)有標(biāo)簽。 卷的序列號(hào)是 3C42-3B82 c: 的目錄

                  十二、三元運(yùn)算符

                  三元運(yùn)算符的功能與“if....else”流程語(yǔ)句一致,它在一行中書寫,代碼精練、執(zhí)行效率高。在PHP 程序中恰當(dāng)?shù)厥褂萌\(yùn)算符能夠讓腳本更為簡(jiǎn)潔、高效。

                  代碼的格式如下:

                  表達(dá)式1?表達(dá)式2:表達(dá)式3

                  如果表達(dá)式1 的值為true 則計(jì)算表達(dá)式2,否則計(jì)算表達(dá)式3。應(yīng)用判斷運(yùn)算符的示例代碼如下。

                  <?php

                  $a = 90;

                  $b = $a>80?'成功':'失敗';

                  echo $b;

                  ?>

                  在瀏覽器中輸出為:

                  成功

                  應(yīng)該注意的是:在使用三元運(yùn)算符時(shí),建議使用print 語(yǔ)句替換echo 語(yǔ)句,經(jīng)測(cè)試,PHP4 環(huán)境下,在使用三元運(yùn)算時(shí)若用echo 語(yǔ)句打印內(nèi)容,PHP 會(huì)報(bào)錯(cuò)。

                  十三、運(yùn)算符的優(yōu)先級(jí)

                  一個(gè)復(fù)雜的表達(dá)式往往包含了多種運(yùn)算符,各個(gè)運(yùn)算符優(yōu)先級(jí)的不同決定了其被執(zhí)行的順序也不一樣。高優(yōu)先級(jí)的運(yùn)算符所在的子表達(dá)式會(huì)先被執(zhí)行,而低優(yōu)先級(jí)的運(yùn)算符所在的子表達(dá)式會(huì)后被執(zhí)行。

                  下面表格從高到低列出了PHP 運(yùn)算符的優(yōu)先級(jí)。同一行中的運(yùn)算符具有相同的優(yōu)先級(jí),此時(shí)它們的結(jié)合方向決定求值順序。左聯(lián)表示表達(dá)式從左向右求值,右聯(lián)相反。

                  運(yùn)算符優(yōu)先級(jí)

                  結(jié)合方向 運(yùn)算符 附加信息

                  無(wú)方向性 new new

                  左 [ array()

                  無(wú)方向性 ++ – 遞增,遞減運(yùn)算符

                  無(wú)方向性 ! ~ - (int) (float) (string) (array) (object) @

                  類型

                  左 * / % 算數(shù)運(yùn)算符

                  50

                  左 + - . 算數(shù)運(yùn)算符和字符串運(yùn)算符 左 << >> 位運(yùn)算符

                  無(wú)方向性 < <= > >= 比較運(yùn)算符

                  無(wú)方向性 == != === !== 比較運(yùn)算符 左 & 位運(yùn)算符和引用

                  左 ^ 位運(yùn)算符

                  左 | 位運(yùn)算符

                  左 && 邏輯運(yùn)算符

                  左 || 邏輯運(yùn)算符

                  左 ? : 三元運(yùn)算符

                  右 = += -= *= /= .= %= &= |= ^=

                  <<= >>=

                  賦值運(yùn)算符

                  左 and 邏輯運(yùn)算符

                  左 xor 邏輯運(yùn)算符

                  左 or 邏輯運(yùn)算符

                  如果在開(kāi)發(fā)過(guò)程中需要使用復(fù)雜的表達(dá)式運(yùn)算,則可以通過(guò)添加“()”來(lái)限制各子表達(dá)式運(yùn)算的優(yōu)先級(jí)。

                  第七節(jié) 表達(dá)式

                  表達(dá)式是常量、變量和運(yùn)算符的組合。表達(dá)式是PHP 最重要的基石。在PHP中,幾乎所寫的任何東西都是一個(gè)表達(dá)式。簡(jiǎn)單但卻最精確的定義一個(gè)表達(dá)式的方式就是“任何有值的東西”。

                  一、簡(jiǎn)單表達(dá)式

                  簡(jiǎn)單表達(dá)式是由一個(gè)單一的賦值符或一個(gè)單一函數(shù)調(diào)用組成的。由于這些表達(dá)式很簡(jiǎn)單,所以也沒(méi)必要過(guò)多討論。下面是一些例子: <?php

                  $a = 20;

                  $a>$b;

                  $a>5?'休息':'上班';

                  $usenames = array('John','Marie ');

                  ?>

                  二、復(fù)雜表達(dá)式

                  復(fù)雜表達(dá)式可以以任何順序使用任意數(shù)量的數(shù)值、變量、操作符和函數(shù)。盡可能使用簡(jiǎn)短的表達(dá)式,這意味著它們更容易維護(hù)。以下是一些例子:

                  <?php

                  ((10+2)/count_fishes() * 114)

                  ?>

                  包含有三個(gè)操作符和一個(gè)函數(shù)調(diào)用的復(fù)雜表達(dá)式。 <?php

                  initialize_count(20 -($int_page_number -1) * 2) ?>

                  有一個(gè)復(fù)雜表達(dá)式參數(shù)的簡(jiǎn)單函數(shù)調(diào)用。 有時(shí)很難分清左括號(hào)和右括號(hào)的數(shù)目是否相同。從左到右,當(dāng)左括號(hào)出現(xiàn)時(shí),就加1,當(dāng)右括號(hào)出現(xiàn)時(shí),就從總數(shù)中減1。如果在表達(dá)式的結(jié)尾,總數(shù)為零時(shí)

                  


          php在百度的發(fā)展歷程php中關(guān)于引用(&)詳解
          PHP正則表達(dá)式的幾則使用技巧 細(xì)說(shuō)PHP模板引擎
          windows下PHP運(yùn)行環(huán)境安裝詳解js與php調(diào)用
          PHP與ASP.NET的比較PHP基本語(yǔ)法補(bǔ)充案例
          PHP簡(jiǎn)明教程php開(kāi)源框架分析
          PHP文件刪除程序php陰歷程序
          寶典php驗(yàn)證碼制作PHP的頁(yè)面緩沖處理機(jī)制
          PHP之防御sql注入攻擊的方式PHP入門篇
          信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
          • 勁爆價(jià):
            不限功能
            不限用戶
            1998元/年

          • 微信客服

            <output id="r87xx"></output>
          1. 
            
            <mark id="r87xx"><thead id="r87xx"><input id="r87xx"></input></thead></mark>
              • 一起色综合| 激情动态图欧美 | 毛片免费网址 | 亚州成人| 豆花理论视频在线播放 | 欧美人妻中文字幕久久久苍井空 | 四虎成人精品永久免费AV九九 | 国产美女91 | 巨大乳人妻中文字幕 | 黄色视频亚洲在线免费观看 |