批改状态:合格
老师批语:
两者用法相同,区别在于出错处理,include出错后可继续向下执行,require出错后终止执行。
包含的文件与当前脚本共用同一个作用域
对象是一个容器,是全局成员的一个前缀。
类:全局成员,声明,class,大驼峰UserName,PascalName
// 类声明 classclass Goods{}// 类的实例化->对象 new$goods = new Goods();// 实例总是与一个类绑定。var_dump($goods instanceof Goods);echo '<hr>';echo get_class($goods).'<br>';// 动态类// 控制器就是一个动态类,控制器名称出现在url$controller = $goods;$obj = new $controller();var_dump($obj);

/*** 类成员* 1. 实例成员:用对象访问,内部用$this->属性* 2. 静态成员:static定义,用类访问,内部用self::$静态属性名*/class User1 {//实例成员// 默认:公有成员publicpublic $username = '路人甲';// 私有:只能在当前类使用private $salary = 60000;//方法:函数语法public function getSalary(){$user = new User1();return $user->salary;}}// 实例化$user1 = new User1();echo $user1->username.'<br>';//私有变量只能内部使用,外部直接使用会报错。// echo $user1->salary.'<br>';echo $user1->getSalary();

以上代码如果改动User1这个名字,通用性会受影响,因此this派上用场了。
class User1 {...//方法:函数语法public function getSalary(){// 缺乏通用性不建议// $user = new User1();// return $user->salary;// 使用this更通用return $this->salary;}}...
类里面采用双下划线开始的函数,只有使用权没有定义权。
// 获取类中任意私有属性,属性获取器。class User1 {//实例成员// 默认:公有成员publicpublic $username = '路人乙';// 私有:只能在当前类使用private $salary = 100000;// 区别身份public $role = '老婆';// 获取器public function __get($name) {// 访问工资时,少报1000if($this->role == '老婆')return $this->$name - 1000;return $this->$name;}// 设置器public function __set($name, $value){$this->$name = $value;}// __get,__set拦截非法请求}// 实例化$user1 = new User1();echo $user1->username.'<br>';//通过属性获取器直接访问私有变量。echo $user1->salary.'<br>';//通过属性设置器直接设置私有变量。$user1->salary = 2000000;echo $user1->salary.'<br>';

class User {public $username;public $role;private $salary;private $age;// 当前类实例状态(属性值)应该有用户决定。// 构造方法派上用场,实例化时自动触发。public function __construct($username, $role, $salary, $age){$this->username = $username;$this->role = $role;$this->salary =$salary;$this->age = $age;}}$user1 = new User('路人甲', '会计', 15000, 30);$user2 = new User('路人乙', '销售', 10000, 32);echo $user1->username.'<br>';echo $user2->username.'<br>';
被所有对象共享
class User {public $username;public $role;private $salary;private $age;// 当前类实例状态(属性值)应该有用户决定。// 构造方法派上用场,实例化时自动触发。public function __construct($username, $role, $salary, $age, $nation = '中国'){$this->username = $username;$this->role = $role;$this->salary =$salary;$this->age = $age;// 初始化静态属性self::$nation = $nation;}// 静态属性,不写死,在构造函数里初始化。public static $nation;// 静态方法访问静态属性public static function hello() {// 在类中要使用self引用当前类// return 'Hello,'. User::$nation;return 'Hello,'. self::$nation;}}$user1 = new User('路人甲', '会计', 15000, 30);echo $user1->username.'<br>';// 类外部访问静态变量echo User::$nation.'<br>';// 调用静态方法echo User::hello().'<br>';$user2 = new User('路人乙', '销售', 10000, 32, '泰国');echo $user2->username.'<br>';echo User::$nation.'<br>';

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号