當前位置:首頁 > 專題 > 新手初學PHP > PHP新手上路(四)

PHP新手上路(四)

發布:smiling 來源: php粉絲網  添加日期:2013-11-17 瀏覽: 評論:0 

 4.1 數據類型

PHP支持整數、浮點數、字符串、數組和對象。變量類型通常不由程序員決定而由PHP運行過程決定(真是好的解脫!)。當然,如果你喜歡的話,你也可以使用cast或者函數settype()將某種類型的變量轉換成指定的類型。

數值

數值類型可以是整數或是浮點數。你可以用以下的語句來為一個數值賦值:

$a = 1234; # 十進制數

$a = -123; # 負數

$a = 0123; # 八進制數 (等于十進制數的83)

$a = 0x12; # 十六進制數(等于十進制數的18)

$a = 1.234; # 浮點數"雙精度數"

$a = 1.2e3; # 雙精度數的指數形式

字符串

字符串可以由單引號或雙引號引出的字段定義。注意不同的是被單引號引出的字符串是以字面定義的,而雙引號引出的字符串可以被擴展。而且,在雙引號字符串中可以使用反斜杠()在字符串中加入轉義序列和轉換字符。舉例如下:

  1. $first = 'Hello';  
  2. $second = "World";  
  3. $full1 = "$first $second"; # 產生 Hello World  
  4. $full2 = '$first $second';# 產生 $first $second 
  5. $full3="01DC studio,." 2000 copyright." " ; 

請注意最后一行,如果需要在字符串中使用雙引號,可以使用反斜杠字符,象該行語句所示。這里的的反斜杠用來使雙引號的功能改變。

可以將字符和數字利用運算符號連接起來。字符被轉化成數字,利用其最初位置。在PHP手冊中有詳細的例子。

數組與哈希表

數組與哈希表以同樣的方法被支持。怎樣運用取決于你怎樣定義它們。你可以用list()或者array()來定義它們,也可以直接為數組賦值。數組的索引從0開始。雖然我在這里沒有說明,但是你一樣可以輕易的使用多維數組。

  1. // 一個包含兩個元素的數組  
  2. $a[0] = "first";   
  3. $a[1] = "second";   
  4. $a[] = "third"// 添加數組元素的簡單方法  
  5. // 現在$a[2]被賦值為"third"  
  6. echo count($a); // 打印出3,因為該數組有3個元素  
  7. // 用一個語句定義一個數組并賦值  
  8. $myphonebook = array (  
  9. "sbabu" => "5348",  
  10. "keith" => "4829",  
  11. "carole" => "4533" 
  12. );  
  13. // 噢,忘了教長吧,讓我們添加一個元素  
  14. $myphonebook["dean"] = "5397";  
  15. // 你定義的carale元素錯了,讓我們更正它  
  16. $myphonebook["carole"] => "4522" 
  17. // 我還沒有告訴你怎樣使用數組的相似支持方式嗎?讓我們看一看  
  18. echo "$myphonebook[0]"// sbabu  
  19. echo "$myphonebook[1]"// 5348 

其他一些對數組或哈希表有用的函數包括sort(),next(),prev()和each()。

對象

使用new語句產生一個對象:

  1. class foo   
  2. {  
  3. function do_foo ()   
  4. {   
  5. echo "Doing foo.";   
  6. }  
  7. }  
  8. $bar = new foo;  
  9. $bar->do_foo(); 

改變變量類型

在PHP手冊中提到:"PHP不支持(也不需要)直接在聲明變量時定義變量類型;變量類型將根據其被應用的情況決定。如果你為變量var賦值為一個字符串,那么它變成了一個字符串。如果你又為它賦了整數值,那么它就變成了整數。"

  1. $foo = "0"// $foo是字符串(ASCII 48)  
  2. $foo++; // $foo是字符串"1" (ASCII 49)  
  3. $foo += 1; // $foo現在是整數(2)  
  4. $foo = $foo + 1.3; // $foo是一個雙精度數(3.3)  
  5. $foo = 5 + "10 Little Piggies"// $foo是一個整數(15)  
  6. $foo = 5 + "10 Small Pigs"// $foo是一個整數(15) 

如果想要強行轉換變量類型,可以使用與C語言相同的函數settype()。

4.2 變量與常量

可能你已經注意到,變量都有一個美元符號($)的前綴。所有變量都是局部變量,為了使得定義的函數中可以使用外部變量,使用global語句。而你要將該變量的作用范圍限制在該函數之內,使用static語句。

  1. $g_var = 1 ; // 全局范圍  
  2. function test()   
  3. {  
  4. global $g_var// 這樣就可以聲明全局變量了  

更先進一些的是變量的變量表示。請參考PHP手冊。這在有時會顯得很有用。

PHP內置了許多已定義的變量。你也可以用define函數定義你自己的常量,比如define("CONSTANT","value")。

4.3 運算符

PHP具有C,C++和Java中的通常見到的運算符。這些運算符的優先權也是一致的。賦值同樣使用"="。

算術和字符

以下只有一種運算符是有關字符的:

$a + $b :加

$a - $b :減

$a * $b :乘

$a / $b :除

$a % $b :取模(余數)

$a . $b :字符串連接

邏輯和比較

邏輯運算符有:

$a || $b :或

$a or $b :或

$a && $b :與

$a and $b :與

$a xor $b :異或 (當$a或$b為true時為true,兩者一樣時為false) 

! $a :非

比較運算符有:

$a == $b :相等

$a != $b :不等

$a < $b :小于

$a <= $b :小于等于

$a > $b :大于

$a >= $b :大于等于

與C一樣PHP也有三重運算符(?:)。位操作符在PHP同樣存在。

優先權

就和C以及Java一樣!

4.4 控制流程結構

PHP有著與C一樣的流程控制。我將在下面大概介紹。

if, else, elseif, if(): endif

if (表達式一) 
{
. . .

elseif (表達式二) 
{
. . .

else 
{
. . .
}
// 或者像Python一樣
if (表達式一) :
. . .
. . .
elseif (表達式二) :
. . .
else :
. . .
endif ;

Loops. while, do..while, for

while (表達式) 
{
. . .
}
do 
{
. . .

while (表達式);
for (表達式一; 表達式二; 表達式三) 
{
. . .
}
//或者像Python一樣
while (expr) :
. . .
endwhile ;

switch

switch是對多重if-elseif-else結構的最好的替換:
switch ($i) 
{
case 0:
print "i equals 0";
case 1:
print "i equals 1";
case 2:
print "i equals 2";
}

break, continue

break中斷當前的循環控制結構。
continue被用來跳出剩下的當前循環并繼續執行下一次循環。

require, include

就像C中的#include預處理一樣。你在require中指定的那個文件將替代其在主文件中的位置。在有條件的引用文件時,可以使用include()。這樣就使得你可以將復雜的PHP文件分割成多個文件并且在不同需要時分別引用它們。

4.5 函數

你可以像以下的例子一樣定義自己的函數。函數的返回值可以是任何數據類型:

  1. function foo (變量名一, 變量名二, . . . , 變量名n)   
  2. {  
  3. echo "Example function.n";  
  4. return $retval;  

所有PHP代碼都可以出現在函數定義中,甚至包括對其他函數和類的定義。函數必須在引用之前定義。

4.6 類

利用類模型建立類。可以參考PHP手冊中對類的詳細解釋。

  1. class Employee   
  2. {  
  3. var $empno// 員工人數  
  4. var $empnm// 員工姓名  
  5.  
  6. function add_employee($in_num$in_name)  
  7. {  
  8. $this->empno = $in_num;  
  9. $this->empnm = $in_name;  
  10. }  
  11.  
  12. function show()   
  13. {  
  14. echo "$this->empno, $this->empnm";  
  15. return;  
  16. }  
  17.  
  18. function changenm($in_name)  
  19. {  
  20. $this->empnm = $in_name;  
  21. }  
  22. }  
  23.  
  24. $sbabu = new Employee;  
  25. $sbabu->add_employee(10,"sbabu");  
  26. $sbabu->changenm("babu");  
  27. $sbabu->show();  

Tags:php新手入門 php新手上路

分享到: 收藏

相關文章

天气网首页彩吧