一:在php中,用class關鍵字來創建一個類,即進行封裝;在類里面有成員屬性和方法行為組成:
1.成員屬性:用關鍵字var來聲明,可以給初始值也可以不給;現在var廢棄,用public來聲明,public為共有屬性,在任何地方都可以訪問
/*名稱*/public $name = "房明";/*學號*/public $no;/*成績*/public $score;
2.行為方法:和js中的函數類似,一般用public來聲明
/*唱歌*/public function sing($songName){echo "學生會唱{$songName}歌";}/*跑步*/public function run(){return "學生去跑步了";}
特別注意:在類里面調用自己的屬性和方法的時候,用到"$this->..."
public function showSelf(){echo "我叫{$this->name},我的學號是{$this->no},我考了{$this->score}分,{$this->run()}";}
二:new關鍵字實例化對象
要想操作類里面的屬性和方法,必須要實例化一個對象;
每一個對象都是獨立的,通過對象改變屬性只能改變自己內存空間的數據,互不影響;
通過"->"來訪問類里面的屬性和方法,類似于c中的指針,通過"="進行賦值;
$student1 = new Student1(); //創建內存空間,然后把地址傳遞給對象
$student1->name = "張三"; //通過"->"來訪問類里面的屬性和方法,類似于c中的指針,通過"="進行賦值
$student1->no = "1001";
$student1->score = "100";
$student1->showSelf();
三:引用外部類:
引用外部類:include,required;前者在錯誤時會出現一個警告,后者會出現一個致命的錯誤
在不確定外部類是不是用了一次的情況下,為了避免出現沖突,可以用include_once或者required_once
?
代碼:我單獨建了一個Student類,頁面代碼如下:
class Student
{public $name;public $age;
}
然后我想在main頁面用這個類,那么在main頁面需要的代碼如下:
include_once "Student.class.php";
$student = new Student();
四:構造函數和解析函數
構造函數:__construct()初始化參數,當實例化類的時候會調用這個函數,屬于魔術方法,前面是兩個下劃線;
析構函數:__destruct(),當內存被回收的時候調用這個函數;
?
代碼:
class Student
{public $name;public $age;/*************構造函數:__construct()初始化參數******************/public function __construct($name,$age){$this->name = $name;$this->age = $age;}public function show(){echo $this->name."今年".$this->age."歲了";}/************析構函數:******************/public function __destruct(){echo $this->name."內存被回收";}
}
$student = new Student("房明","18");
$student->show(); //此時打印的結果為:房明今年18歲了
?