1.運算子
PHP中運算子的用法與JS基本相同,
需要注意的一點區別是:拼接符加號“+”與點號“.”用法不同,以及“+=”和“.=”的區別,
2.foreach 快速遍歷
foreach陳述句提供了快速遍歷陣列的簡單方式,foreach僅能應用于陣列和物件,
如果應用于其他資料型別的變數或未初始化的變數,則會發出錯誤資訊,
語法:
⑴ foreach (array_expression as $value){ statment }
或者
⑵ foreach (array_expression as $key=>$value){ statment }
注意:
第一種方式,遍歷給定的array_expression陣列,每次回圈中,當前單元的值被賦給$value,
并且陣列內部的指標向前移一步,因此下一次回圈中將會得到下一個單元;
第二種方式,與第一種方式的區別在于,除了當前單元的值外,鍵名也會在每次回圈中被賦給變數$key,
代碼示例(可與js中的 for in 陳述句進行類比):
$arr = ['大明','小芳','小毛','二丫'];
foreach ($arr as $key => $value){
echo $key,$value,'<br>';
}
3.include 與 require
二者都表示包含并運行指定檔案,
未找到檔案時,include會發出一條警告,require會發出一個致命錯誤,
語法:
include '檔案名|檔案路徑';
注意:
當一個檔案被包含時,其中所包含的代碼繼承了include所在行的變數范圍;
從該位置開始,呼叫檔案在改行處可用的任何變數在被呼叫的檔案中都可以使用;
所有在包含檔案中定義的函式和類都具有全域作用域,
代碼示例:
echo 'My girlfriend named $myGirla'; //會報錯變數不存在,
include 'girlfriendlist.php'; //引入外部PHP檔案,
echo 'My girlfriend named $myGirlb'; //My girlfriend name XiaoFang.
4.PHP函式
PHP中的函式j結構與JS中的函式結構的語法特征基本相同,
但PHP中的函式作用域與JS中的函式還是存在一定差別,如PHP中函式外部定義的變數在函式內部不能直接呼叫,
在PHP函式內部使用外部定義的全域變數時,需要使用 global再次宣告,
$girlName = 'Laura';
function test(){
global $girlName;
echo "A girl named $girlName .";
}
test();
5.PHP中的類
PHP中的類使用關鍵詞 class 定義,類名后使用花括號,在括號內定義類的屬性和方法,
語法:class 類名 { 類內部陳述句 }
說明:
① 類名可以是任何非PHP保留字的合法標簽,
一個合法的類名必須以字母或下劃線開頭,其他部分可以是字母、數字或下劃線;
② 一個類可以包含有屬于自己的常量、變數(屬性)和函式(方法),
6.PHP中的物件
PHP中使用關鍵字 new 創建一個類的實體,類應在被實體化之前定義,
語法:$物件名 = new 類名();
說明:
① 創建物件時,“new 類名”后的小括號可有可無;
② 物件之間的傳值仍然是賦值傳遞,只不過傳遞的內容是一個記憶體地址,
7.PHP中類的屬性與屬性型別關鍵詞
類內部的變數成員成為屬性,或欄位、特征,
由關鍵詞 public、protected 或 private開頭,然后跟一個普通的變數宣告構成,
語法:
class 類名 {
屬性關鍵詞 $變數名(屬性名)= 屬性值;
屬性關鍵詞 function 方法名(引數1,引數2,…){ 方法內容陳述句 }
}
說明:
① 屬性中的變數可以初始化,但初始化的值必須是常數;
② 類的屬性和方法如果沒有寫明型別關鍵詞,字默認為公共;
public ,被定義為公有的類成員,可以在任何地方被訪問;
protected,被定義為受保護的類成員,可以被類自身以及其子類或父類訪問;
private,被定義為私有屬性的類成員,只能在所在類內部訪問,
③ 在類的成員方法中,可以使用符號“->”(物件運算子)來訪問非靜態屬性,
代碼示例:
class Person { //通常類名首字母大寫
public $perName = 'firstName'; //定義公有屬性(變數)
function introduction(){ //定義公有函式(方法)
echo 'hello everyone.';
}
private $perAge = 23; //宣告私有函式(方法)
function getAge(){
// 必須通過“this”偽類的形式呼叫屬性,this表示當前正在使用這個方法的物件實體,
echo $this -> perAge ;
}
}
$Susan = new Person; //實體化一個 Person類的物件
print_r($Susan);
$Susan ->perName = 'Susan'; //修改物件的公有屬性值,
echo $Susan -> perName;
$Susan -> introduction();
echo '<br>';
// echo $Susan -> perAge; 無法直接訪問私有變數
$Susan -> getAge() ;
//通過特權函式(公有方法)間接訪問私有屬性,呼叫函式內部的私有方法也是同樣道理,
8.PHP中的類常量與靜態變數
PHP中的類常量和靜態變數是存在于類結構中的兩個不同于常見屬性的結構,
類常量使用關鍵詞“const”宣告,靜態變數使用關鍵詞“static”宣告,
語法:
class 類名{
const 類常量(沒有$開頭)= 簡單值;
static 靜態變數(有$開頭)= 簡單值;
}
說明:
① 由 const宣告的常量,一經宣告,變數值不允許發生任何改變;
② 由 static宣告的靜態變數的陳述句,僅在類被宣告的時候執行一次,但可以修改;
③ 無論是 const宣告的常量還是 static宣告的靜態變數,兩者都使用符號“::”(雙冒號)呼叫;
④ 兩者在呼叫的時候均可以不實體化物件,直接通過類名呼叫,
class Person {
const perName = 'Candy';
static $perAge = 22;
}
echo Person::perName;
echo Person::$perAge;
// Person::perName = Susan; 靜態常量不能修改變數值!!!
Person::$perAge+=1;
echo '<br>';
$Girl = new Person ;
echo $Girl::perName;
echo $Girl::$perAge; //靜態變數只在類初始化是執行一次,因此實體化后的 $perAge=23.
echo '<br>';
echo $Girl ::$perAge ;
9.PHP中類的建構式
建構式是類在實體化物件的時候自動執行,用來幫助類進行構造物件的函式,
PHP為所有的類都提供了一個和類名完全相同的隱藏建構式,
可以通過顯示撰寫或通過“__construct”(雙下劃綫)函式來主動編輯,
語法:
class 類名{
function __construct(){ 主動修改的代碼 }
function 類名(){ 主動修改的代碼 }
}
說明:
兩種寫法都能夠實作建構式的主動編輯,但系統自動踢狗的是第二種結構,
10.PHP中類的繼承
繼承也稱為類擴展,是指子類會繼承父類所有公有的和受保護的屬性方法,
PHP中使用關鍵詞“extends”來實作繼承,
語法:class 子類名 extends 父類名 { 子類結構陳述句 }
說明:
① 除非子類覆寫類父類的方法,否則被繼承的方法都會保留其原有功能;
② 繼承對于功能的設計和抽象都非常有用,避免撰寫大量的重復公有結構;
③ 對于公有屬性和方法的繼承,子類可以直接隨意使用,
對于受保護的屬性和方法的繼承,可以在“父類或子類的內部”使用,
對于私有的屬性和方法,子類不能夠繼承,
代碼示例:
class FatherList {
public $top1Pub = 'Rebecca';
protected $top2Pro ='Emmy';
private $top3Pri ='Abbie';
public function fatherPublicEx() {
echo $this -> top1Pub.'<br>';
echo $this -> top2Pro.'<br>';
echo $this -> top3Pri.'<br>';
}
protected function fatherProtectedEx() {
echo $this -> top1Pub.'<br>';
echo $this -> top2Pro.'<br>';
echo $this -> top3Pri.'<br>';
}
private function fatherPrivateEx() {
echo $this -> top1Pub.'<br>';
echo $this -> top2Pro.'<br>';
echo $this -> top3Pri.'<br>';
}
}
$List = new FatherList;
$List -> fatherPublicEx();
// $List -> fatherProtectedEx();
// $List -> fatherPrivateEx(); 受保護和私有方法外部不能訪問!
class SonList extends FatherList {
public function sonListEx(){
echo $this -> top1Pub.'<br>';
echo $this -> top2Pro.'<br>';
// echo $this -> top3Pri.'<br>'; 私有屬性無法繼承獲得,
$this -> fatherPublicEx(); //公有方法可以繼承獲得,
$this -> fatherProtectedEx(); //受保護方法可以繼承獲得,
// $this -> fatherPrivateEx(); 私有方法不可以繼承獲得,
}
}
$SList = new SonList;
$SList -> sonListEx();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/245043.html
標籤:PHP
上一篇:PHP設計模式之模板方法模式
