
批改狀態(tài):合格
老師批語:
1.
include
和require
都是在當(dāng)前文件調(diào)用外部文件,且作用域即當(dāng)前文件的作用域
2.require
語句調(diào)用文件時(shí),如果沒有找到文件,require
語句會(huì)輸出錯(cuò)誤信息,并且立即終止腳本的處理,而include
語句在沒有找到文件時(shí)則會(huì)輸出警告,不會(huì)終止腳本的處理
3.使用require
語句調(diào)用文件時(shí),只要程序一執(zhí)行,就會(huì)立刻調(diào)用外部文件,而通過include
語句調(diào)用外部文件時(shí),只有當(dāng)程序執(zhí)行到這條語句時(shí),才會(huì)調(diào)用外部文件
例如:
<?php
// 當(dāng)xxx.php文件不存在時(shí),會(huì)輸出錯(cuò)誤信息,但依然會(huì)執(zhí)行輸出Hello World
// 文件初始化時(shí)就調(diào)用了外部文件
include 'xxx.php';
echo 'Hello World';
// 當(dāng)xxx.php文件不存在時(shí),會(huì)輸出錯(cuò)誤信息且終止腳本處理,不會(huì)輸出Hello World
// 文件初始化時(shí)未調(diào)用外部文件,執(zhí)行require語句時(shí)才會(huì)調(diào)用
require 'xxx.php';
echo 'Hello World';
?>
<?php
namespace _0812;
// 聲明類
class User
{
// 1.公共屬性
public $userName;
public $sex;
// 2.私有屬性
private $salary;
private $age;
// 3.靜態(tài)屬性
public static $nation;
// 4.獲取器: __get(屬性) 魔術(shù)方法
// $name: 要獲取的屬性名
public function __get($name)
{
// 當(dāng)獲取的屬性為年齡變量時(shí) 對(duì)私有變量$age進(jìn)行+10操作
// 類的內(nèi)部,用$this來直接使用變量屬性,不用實(shí)例化
// 對(duì)私有屬性判斷,返回一個(gè)虛假年齡
return $name === 'age' ? $this->$name + 10 : $this->$name;
}
// 5.更新器/設(shè)置器 __set(屬性,值) 魔術(shù)方法
// 私有屬性可以通過更新器動(dòng)態(tài)更新
// 在屬性動(dòng)態(tài)更新時(shí),對(duì)屬性進(jìn)行更新操作判斷,是否對(duì)其進(jìn)行更新
public function __set($name, $value)
{
// 對(duì)真實(shí)的年齡作判斷
if ($name === 'age') {
if ($value >= 18 && $value <= 50) {
$this->$name = $value;
} else {
echo '年齡越界了';
}
}
}
// 6.構(gòu)造方法:魔術(shù)方法
// 在實(shí)例化該類時(shí)自動(dòng)觸發(fā) 初始化類的屬性
// 公共屬性可以通過構(gòu)函數(shù)來動(dòng)態(tài)更新
// $nation設(shè)置默認(rèn)值
public function __construct($userName, $sex, $salary, $nation = 'China')
{
// 初始化公共屬性
$this->userName = $userName;
$this->sex = $sex;
// 初始化私有屬性
$this->salary = $salary;
// 初始化靜態(tài)屬性
self::$nation = $nation;
}
// 7.靜態(tài)方法 實(shí)例化時(shí)傳入當(dāng)前對(duì)象
public static function hello($user)
{
// 在靜態(tài)方法中調(diào)用類的屬性時(shí) 必須實(shí)例化才可以調(diào)用
// $user = new User('張三', 1800,);
return 'Hello ' . $user->userName . ', 你的國(guó)籍是: ' . self::$nation;
}
}
// 8.實(shí)例化 在類的外部使用類的屬性需要實(shí)例化,用對(duì)象訪問成員
// 實(shí)例化時(shí)沒有初始化$nation時(shí)使用默認(rèn)值
$user1 = new User('趙大', '男', 2800);
// 9.訪問公共成員
echo $user1->userName . '<br>';
// 10.訪問私有成員
echo $user1->salary . '<br>';
// 11.訪問靜態(tài)成員 實(shí)例化未初始化$nation 輸出默認(rèn)值
echo User::$nation . '<br>';
// 12.訪問靜態(tài)成員 實(shí)例化初始化$nation
$user2 = new User('趙大', '男', 2800, '中國(guó)');
echo User::$nation . '<br>';
// 13.訪問靜態(tài)方法
echo User::hello($user2) . '<br>';
// 14.更新成員
$user2->age = 38;
echo $user2->age . '<br>';
// 私有屬性若是通過構(gòu)造函數(shù)初始化值時(shí),更新器對(duì)私有屬性更新時(shí)無效
$user2->salary = 3000;
// 輸出結(jié)果依然是實(shí)例化時(shí)的初始值 2800
echo $user2->salary . '<br>';
// 15.訪問私有屬性$age時(shí),對(duì)$age判斷,并返回虛假年齡
// 真實(shí)年齡 28
$user2->age = 28;
// 輸出虛假年齡 38
echo '虛假年齡:' . $user2->age . '<br>';
// 16.更新$age時(shí)對(duì)其進(jìn)行操作判斷
// 真實(shí)年齡 52
$user2->age = 52;
echo '<br>';
// 打印對(duì)象
var_dump($user2);
微信掃碼
關(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)