
批改狀態(tài):合格
老師批語(yǔ):
//創(chuàng)建類
class User{}
//類的實(shí)例化,即創(chuàng)建對(duì)象
$mj = new User();
//類屬性的訪問(wèn)修飾符,實(shí)現(xiàn)了類OOP的封裝性
public string $name;
private int $salary;
protected int $age;
// __construct(){}構(gòu)造方法
public function __construct($name,$salary,$age){
//$this代表本對(duì)象(實(shí)例化的對(duì)象)
$this->name = $name;
$this->salary = $salary;
$this->age = $age;
}
/**類的自動(dòng)加載器 */
spl_autoload_register(function ($className) {
// echo $className; //加載的類名稱
$classFile = __DIR__ . DS . 'class' . DS . $className . '.php';
if (is_file($classFile) && file_exists($classFile)) require $classFile;
});
// !當(dāng)訪問(wèn)當(dāng)前環(huán)境下未定義或不可訪問(wèn)的類屬性時(shí) ,重載方法__get會(huì)被調(diào)用。
public function __get($name)
{
return $this->data[$name];
}
// !當(dāng)給當(dāng)前環(huán)境下未定義或不可訪問(wèn)的類屬性賦值時(shí) ,重載方法__set會(huì)被調(diào)用。
public function __set($name, $value)
{
$this->data[$name] = $value;
}
// !當(dāng)訪問(wèn)當(dāng)前環(huán)境下未定義或不可訪問(wèn)的類普通方法時(shí) ,重載方法__call會(huì)被調(diào)用。
public function __call($name, $args)
{
if ($name == 'show') {
return $this->data;
}
if ($name == 'sum') {
// var_dump($args);
return array_sum($args);
}
}
class Son extends Product
{
// 擴(kuò)展屬性
public string $brand;
// override 重寫
public function __construct($name, $price, $num, $brand)
{
// parent:: 調(diào)用父類成員
parent::__construct($name, $price, $num);
$this->brand = $brand;
}
// 重寫show方法
public function show()
{
return <<<SHOW
1. 品名:$this->name
2. 價(jià)格:$this->price
3. 數(shù)量:$this->num
4. 品牌:$this->brand
SHOW;
}
}
// 功能擴(kuò)展
public function total()
{
return "$this->name,數(shù)量為{$this->num},總計(jì)" . ($this->price * $this->num) . '元';
}
微信掃碼
關(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)