標籤:
索引數組初始化
PHP有兩種數組:索引數組、關聯陣列。
索引和關聯兩個詞都是針對數組的鍵而言的。
先介紹下索引數組,索引數組是指數組的鍵是整數的數組,並且鍵的整數順序是從0開始,依次類推。
下面使用圖來說明一下:
可以使用下面代碼實現:
$fruit = array("蘋果","香蕉","菠蘿"); 注意數組的鍵是從0開始的。可以使用print_r($fruit);語句輸出數組鍵及對應的值。
索引數組賦值
索引數組賦值有三種方式:
第一種:用陣列變數的名字後面跟一個中括弧的方式賦值,當然,索引數組中,中括弧內的鍵一定是整數。比如,$arr[0]=‘蘋果‘;
第二種:用array()建立一個空數組,使用=>符號來分隔鍵和值,左側表示鍵,右側表示值。當然,索引數組中,鍵一定是整數。比如,array(‘0‘=>‘蘋果‘);
第三種:用array()建立一個空數組,直接在數組裡用英文的單引號‘或者英文的雙引號"賦值,數組會預設建立從0開始的整數的鍵。比如array(‘蘋果‘);這個數組相當於array(‘0‘=>‘蘋果‘);
訪問索引數組內容
有的時候我們需要把數組中的內容也就是值取出來該怎麼辦呢?用陣列變數的名字後跟的中括弧中的鍵,來訪問數組中的值。
例如:
$fruit = array(‘蘋果‘,‘香蕉‘);$fruit0 = $fruit[‘0‘];print_r($fruit0);//結果為蘋果
上面代碼的作用:先把一個數組$fruit第一個值取出來然後賦給一個變數$fruit0,最後輸出變數值。
for逐一查看索引數組裡的值
for迴圈可以將數組裡的所有值都訪問到,下面我們展示下,用for逐一查看索引數組裡的值。
例如:
$fruit=array(‘蘋果‘,‘香蕉‘,‘菠蘿‘);for($i=0; $i<3; $i++){ echo ‘<br>數組第‘.$i.‘值是:‘.$fruit[$i];}foreach逐一查看索引數組裡的值
foreach迴圈可以將數組裡的所有值都訪問到,下面我們展示下,用foreach逐一查看索引數組裡的值。
例如:
$fruit=array(‘蘋果‘,‘香蕉‘,‘菠蘿‘);foreach($fruit as $k=>$v){ echo ‘<br>第‘.$k.‘值是:‘.$v;}
關聯陣列初始化
回顧下前面介紹的內容,PHP有兩種數組:索引數組、關聯陣列。
索引和關聯兩個詞都是針對數組的鍵而言的。
先介紹下,關聯陣列是指數組的鍵是字串的數組。
可以使用下面代碼實現:
$fruit = array( ‘apple‘=>"蘋果", ‘banana‘=>"香蕉", ‘pineapple‘=>"菠蘿");
可以使用print_r($fruit);語句輸出數組鍵及對應的值。
關聯陣列賦值
關聯陣列賦值有兩種方式:
第一種:用陣列變數的名字後面跟一個中括弧的方式賦值,當然,關聯陣列中,中括弧內的鍵一定是字串。比如,$arr[‘apple‘]=‘蘋果‘;
第二種:用array()建立一個空數組,使用=>符號來分隔鍵和值,左側表示鍵,右側表示值。當然,關聯陣列中,鍵一定是字串。比如,array(‘apple‘=>‘蘋果‘);
訪問關聯陣列內容
用陣列變數的名字後跟中括弧+鍵的方式來訪問數組中的值,鍵使用單引號或者雙引號括起來。
比如:
$fruit = array(‘apple‘=>"蘋果",‘banana‘=>"香蕉",‘pineapple‘=>"菠蘿"); $fruit0 = $fruit[‘banana‘];print_r($fruit0);
上面代碼的作用:先把一個數組$fruit中鍵為banana字串的值取出來然後賦給一個另一個變數$fruit0,最後輸出變數值。
foreach逐一查看關聯陣列裡的值
foreach迴圈可以將數組裡的所有值都訪問到,下面我們展示下,用foreach逐一查看關聯陣列裡的值。
例如:
$fruit=array(‘apple‘=>"蘋果",‘banana‘=>"香蕉",‘pineapple‘=>"菠蘿");foreach($fruit as $k=>$v){ echo ‘<br>水果的英文鍵名:‘.$k.‘,對應的值是:‘.$v;}自訂函數
PHP內建了超過1000個函數,因此函數使得PHP成為一門非常強大的語言。大多數時候我們使用系統的內建函數就可以滿足需求,但是自訂函數通過將一組代碼封裝起來,使代碼進行複用,程式結構與邏輯更加清晰。
PHP函數的定義方式:
1.使用關鍵字“function”開始
2.函數名可以是字母或底線開頭:function name()
3.在大括弧中編寫函數體:
function name() { echo ‘Eric‘;}
通過上面的步驟,我們就定義了一個簡單的函數,當我們需要的時候,就可以在代碼中調用這個函數,調用方法為函數名+參數,例如:name();
自訂函數
PHP內建了超過1000個函數,因此函數使得PHP成為一門非常強大的語言。大多數時候我們使用系統的內建函數就可以滿足需求,但是自訂函數通過將一組代碼封裝起來,使代碼進行複用,程式結構與邏輯更加清晰。
PHP函數的定義方式:
1.使用關鍵字“function”開始
2.函數名可以是字母或底線開頭:function name()
3.在大括弧中編寫函數體:
function name() { echo ‘Eric‘;}
通過上面的步驟,我們就定義了一個簡單的函數,當我們需要的時候,就可以在代碼中調用這個函數,調用方法為函數名+參數,例如:name();
函數的參數
PHP的函數可以沒有參數,也可以有若干個參數,多個參數稱之為參數列表,採用逗號進行分割,參數類似於一個變數,調用時用來傳遞資料到函數體中。通過傳遞參數可以使函數實現對參數的運算,得到我們想要的結果。
參數的變數名可以自由指定,但最好能夠表達相關的意思,常用的設定參數的方法為:
function sum($a, $b) { return $a+$b; }傳回值
使用return關鍵字可以使函數傳回值,可以返回包括數組和對象的任意類型,如果省略了 return,則預設傳回值為 NULL。
function add($a) { return $a+1;}$b = add(1);
返回語句會立即中止函數的運行,並且將控制權交回調用該函數的程式碼,因此下面函數的傳回值跟上面的函數是一樣的。
function add($a) { return $a+1; $a = 10; return $a+20;}$b = add(1);
函數不能返回多個值,但可以通過返回一個數組來得到類似的效果。
function numbers() { return array(1, 2, 3);}list ($one, $two, $three) = numbers();可變函數
所謂可變函數,即通過變數的值來調用函數,因為變數的值是可變的,所以可以通過改變一個變數的值來實現調用不同的函數。經常會用在回呼函數、函數列表,或者根據動態參數來調用不同的函數。可變函數的調用方法為變數名加括弧。
function name() { echo ‘jobs‘;}$func = ‘name‘;$func(); //調用可變函數
可變函數也可以用在對象的方法調用上。
class book { function getName() { return ‘bookname‘; }}$func = ‘getName‘;$book = new book();$book->$func();內建函數
內建函數指的是PHP預設支援的函數,PHP內建了很多標準的常用的處理函數,包括字串處理、數組函數、檔案處理、session與cookie處理等。
我們先拿字串處理函數來舉例,通過內建函數str_replace可以實現字串的替換。下面的例子將“jobs”替換成“steven jobs”:
$str = ‘i am jobs.‘;$str = str_replace(‘jobs‘, ‘steven jobs‘, $str);echo $str; //結果為“i am steven jobs”
另外一些函數是通過其他擴充來支援的,比如mysql資料庫處理函數,GD影像處理函數,郵件處理函數等,PHP預設載入了一些常用的擴充庫,我們可以安裝或者載入其他擴充庫來增加PHP的處理函數。
後面的章節我們會介紹更多其他的內建函數及用法。
判斷函數是否存在
當我們建立了自訂函數,並且瞭解了可變函數的用法,為了確保程式調用的函數是存在的,經常會先使用function_exists判斷一下函數是否存在。同樣的method_exists可以用來檢測類的方法是否存在。
function func() {}if (function_exists(‘func‘)){ echo ‘exists‘;}
類是否定義可以使用class_exists。
class MyClass{}// 使用前檢查類是否存在if (class_exists(‘MyClass‘)) { $myclass = new MyClass();}
PHP中有很多這類的檢查方法,例如檔案是否存在file_exists等。
$filename = ‘test.txt‘;if (!file_exists($filename)) { echo $filename . ‘ not exists.‘;} 類和對象
類是物件導向程式設計的基本概念,通俗的理解類就是對現實中某一個種類的東西的抽象, 比如汽車可以抽象為一個類,汽車擁有名字、輪胎、速度、重量等屬性,可以有換擋、前進、後退等操作方法。
通常定義一個汽車類的方法為:
class Car { $name = ‘汽車‘; function getName() { return $this->name; }}
類是一類東西的結構描述,而對象則是一類東西的一個具體執行個體,例如汽車這個名詞可以理解為汽車的總類,但這輛汽車則是一個具體的汽車對象。
對象通過new關鍵字進行執行個體化:
$car = new Car();echo $car->getName();
類與對象看起來比較相似,但實際上有本質的區別,類是抽象的概念,對象是具體的執行個體。類可以使程式具有可重用性。
建立一個對象
上一節,我們使用汽車舉例來認識了類與對象,本節我們來瞭解一下類的定義方法,類通過關鍵字class開頭,然後是類名與花括弧,在花括弧中定義類的屬性與方法。類名必須是字母或底線開頭,後面緊跟若干個字母、數字或底線,類名最好能夠表意,可以採用名詞或者英文單詞。
//定義一個類class Car { //定義屬性 public $name = ‘汽車‘; //定義方法 public function getName() { //方法內部可以使用$this偽變數調用對象的屬性或者方法 return $this->name; }}
要建立一個類的執行個體,可以使用new關鍵字建立一個對象。
$car = new Car();//也可以採用變數來建立$className = ‘Car‘;$car = new $className();
PHP入門