
批改狀態(tài):合格
老師批語(yǔ):類(lèi)與對(duì)象有意思吧
<?php
//類(lèi)的聲明
class Users
{
//類(lèi)的構(gòu)造方法
public function __construct()
{
}
}
//類(lèi)的實(shí)例化:用new來(lái)調(diào)用
$user = new Users();
//動(dòng)態(tài)類(lèi):再類(lèi)名放在一個(gè)變量當(dāng)中
$class = "Users";
$obj = new $class();
<?php
//類(lèi)的聲明
class Users
{ //類(lèi)成員:類(lèi)屬性·類(lèi)方法
//類(lèi)屬性
//public 公共成員:類(lèi)的內(nèi)外部都可訪問(wèn),都可見(jiàn)
public $uname ="一頁(yè)書(shū)";
public $arr = [111,222,333];
public $level = '黃金';
//靜態(tài)屬性
public static $view = '霹靂俠影';
//抽象屬性:沒(méi)被初始化的屬性,默認(rèn)為null
public $abstract;
//類(lèi)方法
public function fun(){
//實(shí)例化
//self:類(lèi)引用,直接用引用類(lèi)名
// $user = new self;
// return "姓名:{$user->uname},級(jí)別:{$user->level}";
//$this:
return "姓名:{$this->uname},級(jí)別:{$this->level}";
//備注1:使用$this,則可不要$user = new self;
//備注2:現(xiàn)在普通方法可以調(diào)用靜態(tài)成員,但不推薦使用
}
//類(lèi)方法訪問(wèn)外部成員,需要用參數(shù)傳入
public function fun1($outfun,$outname)
{
return '類(lèi)方法訪問(wèn)外部成員==>'.$outfun().$outname;
}
//靜態(tài)方法:不依賴(lài)示例,可以直接調(diào)用;靜態(tài)方法只調(diào)用靜態(tài)成員
public static function fun2(){
//靜態(tài)成員是類(lèi),不屬于類(lèi)示例,不能用$this引用示例
return self::$view;
}
}
//類(lèi)的實(shí)例化:用new來(lái)調(diào)用
$user = new Users();
//訪問(wèn)正常屬性
echo "訪問(wèn)正常屬性:".$user ->uname.",數(shù)組元素:".$user->arr[2];
echo "<br>";
//訪問(wèn)靜態(tài)屬性:類(lèi)名::屬性
echo "訪問(wèn)靜態(tài)屬性:".Users::$view;
echo "<br>";
//訪問(wèn)抽象屬性
var_dump($user->abstract);
echo "<hr>";
//訪問(wèn)類(lèi)方法
echo "訪問(wèn)普通類(lèi)方法=>".$user->fun();
echo "<br>";
//訪問(wèn)類(lèi)外部成員:外部函數(shù)(匿名函數(shù)),外部變量
//外部函數(shù)
$outfun =function()
{
return "歡迎";
};
//外部變量
$outname ='經(jīng)典款';
echo $user->fun1($outfun,$outname);
echo "<br>";
//訪問(wèn)靜態(tài)方法
echo "訪問(wèn)靜態(tài)方法==>".$user->fun2();
<?php
//類(lèi)的訪問(wèn)權(quán)限
class Users
{
// public:公共成員,類(lèi)的內(nèi)外部及子類(lèi)皆可調(diào)用
// private:私有成員,僅限類(lèi)的內(nèi)部調(diào)用
// protected:受保護(hù)成員,僅限類(lèi)的內(nèi)部和子類(lèi)調(diào)用
public $title='圣墟';
private $author='辰東';
protected function fun(){
return "書(shū)名:".$this->title.",作者:".$this->author;
}
}
//子類(lèi)
class Novel extends Users
{
protected $leve = "白金作家";
public function fun12(){
return $this->fun().",".$this->leve;
}
}
//實(shí)例化
echo "父類(lèi)中訪問(wèn)==》".(new Users)->title;
echo "<hr>";
$novel = new Novel();
echo "子類(lèi)中訪問(wèn)==》".$novel->fun12();
<?php
//類(lèi)的擴(kuò)展
// final: 類(lèi)前加禁止類(lèi)擴(kuò)展
class Users
{
// public:公共成員,類(lèi)的內(nèi)外部及子類(lèi)皆可調(diào)用
// private:私有成員,僅限類(lèi)的內(nèi)部調(diào)用
// protected:受保護(hù)成員,僅限類(lèi)的內(nèi)部和子類(lèi)調(diào)用
public $title='圣墟';
private $author='辰東';
// final: 方法前加:禁止重寫(xiě)
public function fun(){
return "書(shū)名:".$this->title.",作者:".$this->author;
}
}
//子類(lèi)(擴(kuò)展類(lèi))
class Novel extends Users
{
//1.擴(kuò)展
//屬性擴(kuò)展
protected $leve = "白金作家";
//方法擴(kuò)展
public function fun12()
{
return parent::fun().",".$this->leve;
}
//2.重寫(xiě)
// 屬性重寫(xiě)
public $title='圣墟123456';
//方法重xie
public function fun(){
return "書(shū)名:".$this->title.",作者:".$this->author."級(jí)別:{$this->leve}";
}
}
//實(shí)例化
$novel = new Novel();
echo "子類(lèi)中訪問(wèn)方法擴(kuò)展==》".$novel->fun12();
echo "<hr>";
echo "子類(lèi)中訪問(wèn)方法重寫(xiě)==》".$novel->fun();
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)