批改狀態(tài):未批改
老師批語(yǔ):
使用類(lèi)的構(gòu)造、屬性的訪問(wèn)、輸出模板的設(shè)置、類(lèi)的繼承等完成一個(gè)學(xué)生信息類(lèi):
<?php //學(xué)生信息 class Student { //屬性 public $name; public $age; //private私有變量,子類(lèi)或外部不能訪問(wèn),只能在本類(lèi)使用,除非添加獲取器。 private $sex; //protected,子類(lèi)可以訪問(wèn),外部不能訪問(wèn) protected $grade; //構(gòu)造函數(shù),初始化化模板 public function __construct($name,$age,$sex,$grade) { $this->name = $name; //姓名 $this->age = $age; //年齡 $this->sex = $sex; //性別 $this->grade = $grade; //成績(jī) // //預(yù)設(shè)輸出 // echo $this->getInfo(); } //私有變量獲取器 public function getSex() { return var_export($this->sex,true); } //私有變量獲取器 public function getGrade() { return var_export($this->grade, true); } // //私有變量通過(guò)角色判斷才可以獲得相對(duì)數(shù)值 // public function getGrade1() { // $grade = '<br>成績(jī)是:'; // if ($this->role === '老師') { // $grade .= var_export($this->grade,true); // }else { // $grade = '只有老師才能查看最終成績(jī)'; // } // return var_export($grade); // } //輸出函數(shù) public function getInfo(){ $stu = '學(xué)生的'; $stu .= '姓名:'. $this->name; $stu .= '<br>年齡:'. $this->age; $stu .= '<br>性別:'. $this->getSex(); $stu .= '<br>成績(jī):'. $this->getGrade(); //返回輸出模板 return $stu; } } $student = new Student('nick',27,'男',90); //輸出信息 echo $student->getInfo(); echo '<hr>'; //繼承 class Role extends Student{ //添加角色屬性 public $role; //角色屬性初始化 public function __construct($name, $age, $sex, $grade,$role) { parent::__construct($name, $age, $sex, $grade); $this->role = $role; } //重寫(xiě)輸出模板getInfo() public function getInfo() { //先判斷角色是否可以查看學(xué)生成績(jī),預(yù)設(shè)只有老師和管理員可以查看學(xué)生成績(jī) if ($this->role === '老師' || $this->role === 'admin'){ $stu = '登錄人員:'. $this->role . '<br>'; $stu .= '學(xué)生的'; $stu .= '姓名:'. $this->name; $stu .= '<br>年齡:'. $this->age; $stu .= '<br>性別:'. $this->getSex(); $stu .= '<br>成績(jī):'. $this->getGrade(); //返回輸出模板 return $stu; }else { $stu = '登錄人員:'. $this->role . '<br>'; $stu .= '學(xué)生的'; $stu .= '姓名:'. $this->name; $stu .= '<br>年齡:'. $this->age; $stu .= '<br>性別:'. $this->getSex(); $stu .= '<br>成績(jī):'. '非老師或管理員,無(wú)權(quán)查看'; //返回輸出模板 return $stu; } } } $student = new Role('Nick',27,'男',90,'學(xué)生'); //輸出信息 echo $student->getInfo(); echo '<hr>'; //測(cè)試?yán)蠋熁蛘吖芾韱T是否可以查看完整學(xué)生信息 $teacher = new Role('Nick',27,'男',90,'老師'); //輸出信息 echo $teacher->getInfo(); echo '<hr>'; //測(cè)試?yán)蠋熁蛘吖芾韱T是否可以查看完整學(xué)生信息 $admin = new Role('Nick',27,'男',90,'admin'); //輸出信息 echo $admin->getInfo();
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
最終在頁(yè)面顯示出的查詢效果:
微信掃碼
關(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)