PHP新手上路(四)

來源:互聯網
上載者:User
關鍵字 PHP新手上路(四)
php入門

  4.1 資料類型

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

數值

  數實值型別可以是整數或是浮點數。你可以用以下的語句來為一個數值賦值:
$a = 1234; # 十進位數
$a = -123; # 負數
$a = 0123; # 八位元 (等於十進位數的83)
$a = 0x12; # 十六進位數(等於十進位數的18)
$a = 1.234; # 浮點數"雙精確度數"
$a = 1.2e3; # 雙精確度數的指數形式

字串

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

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

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

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

數組與雜湊表

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

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

其他一些對數組或雜湊表有用的函數包括sort(),next(),PRev()和each()。

對象

  使用new語句產生一個對象:
class foo 
{
function do_foo () 
{ 
echo "Doing foo."; 
}
}
$bar = new foo;
$bar->do_foo();

改變變數類型

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

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

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

4.2 變數與常量

  可能你已經注意到,變數都有一個貨幣符號($)的首碼。所有變數都是局部變數,為了使得定義的函數中可以使用外部變數,使用global語句。而你要將該變數的作用範圍限制在該函數之內,使用static語句。
$g_var = 1 ; // 全域範圍
function test() 
{
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 函數

  你可以像以下的例子一樣定義自己的函數。函數的傳回值可以是任何資料類型:
function foo (變數名一, 變數名二, . . . , 變數名n) 
{
echo "Example function.n";
return $retval;
}

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

4.6 類

  利用類模型建立類。可以參考PHP手冊中對類的詳細解釋。
class Employee 
{
var $empno; // 員工人數
var $empnm; // 員工姓名

function add_employee($in_num, $in_name)
{
$this->empno = $in_num;
$this->empnm = $in_name;
}

function show() 
{
echo "$this->empno, $this->empnm";
return;
}

function changenm($in_name)
{
$this->empnm = $in_name;
}
}

$sbabu = new Employee;
$sbabu->add_employee(10,"sbabu");
$sbabu->changenm("babu");
$sbabu->show(); 

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.