
批改狀態(tài):合格
老師批語:
<?php
//作業(yè)內(nèi)容:
// 1. 實(shí)例演示函數(shù)的相關(guān)知識點(diǎn)
// 2. 實(shí)例演示課堂上提及全部類與對象的關(guān)鍵字,重點(diǎn)放在屬性與方法的重載上
//申明函數(shù) PHP7.1以后,類型約定
function hello(int $a, int $b) : int
// :int 返回值必須是數(shù)值 沒有return寫:void待定
{
// 獲取傳遞的參數(shù)
func_get_args();
print_r(func_get_args());
return "$a + $b";
}
//函數(shù)調(diào)用
echo hello(22,2)."\n";
class Person
{
// 屬性
private string $act;
// 私有屬性
private int $age;
private string $name;
private int $salary;
// 構(gòu)造方法,實(shí)例初始化自動調(diào)用
public function __construct($act,$age,$name,$salary)
{
$this->act = $act;
$this->age = $age;
$this->name = $name;
$this->salary=$salary;
}
// 屬性重載, 攔截外部的非法屬性訪問
// __get()獲取器,當(dāng)獲取一個(gè)不存在或【無權(quán)限訪問】的屬性時(shí)觸發(fā)
public function __get($propertyName){
$result = 0;
if ($propertyName === 'age'){
$result = $this->age +5;
}elseif ($propertyName === 'salary' ){
$result = $this->salary+2000;
}elseif ($propertyName === 'name'){
$result = $this->name.'--->名兒';
}elseif ($propertyName === 'act'){
$result = $this->act;
}
return $result;
}
// __set(value): 屬性設(shè)置器(寫)
// __set(屬性名,新值)
public function __set($name,$value){
$this->$name = $value;
}
private function message($a,$b,$c)
{
return <<<DATA
"$this->name,年齡:$this->age 技能:$this->act,工資:$this->salary"
DATA;
}
// 普通方法重載: __call()
public function __call($name,$arguments) // $name: 方法名稱, $arguments: 參數(shù)數(shù)組
{
// return $name.','.join(',',$arguments);
if ($name === 'ok'){
echo '此方法不存在,啥也不做!';
}elseif ($name === 'message'){
return <<<DATA
"$this->name,年齡:$this->age 技能:$this->act,工資:$this->salary"
DATA;
}
}
}
$xiaoming = new Person('一指禪','18','王敏',3500);
echo '姓名:'. $xiaoming->name.PHP_EOL;
echo '年齡:'.$xiaoming->age.PHP_EOL;
echo '工資+2千:' .$xiaoming->salary.PHP_EOL;
echo'--------------'.PHP_EOL;
// set設(shè)置屬性
$xiaoming->act = '降龍十八掌'.PHP_EOL;
echo $xiaoming->act.PHP_EOL;
echo $xiaoming->message(1,3,5).PHP_EOL;
echo $xiaoming->ok(); // 沒有這個(gè)方法
/**
* class: 聲明類
* new: 類的實(shí)例化
* public: 訪問限制符(公開成員/默認(rèn)值)
* private: 訪問限制符(私有成員,僅在類中訪問,類外不可見)
* __construct(): 構(gòu)造方法(實(shí)例化時(shí)調(diào)用,用于初始化類實(shí)例)
* $this: 當(dāng)前類實(shí)例的引用,只能用在類中
* __get($name): 屬性重載,攔截非法屬性"讀"訪問
* __set($name,$value): 屬性重載,攔截非法屬性"寫"訪問
* __call($name,$arguments): 方法重載,攔截非法的方法訪問
*/
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號