批改状态:合格
老师批语:发现大家的编辑器主题与我一样, 不一定要完全模仿吧

<?phpclass Goods{public $a = 1;public function __construct(){}}$goods = new Goods();var_dump($goods);// var_dump($goods instanceof Goods);// 动态类:将类名称放在一个变量中// $className = 'Goods';// $obj = new $className();

<?php// 类中的方法class User{// 1.类属性public $name = "小芳";public $age = "20";public static $nation = 'CHINA';// 2.类方法public function write1(){// 访问类属性// 1.实例化,User是写死$user = new User;// 2.访问类成员return "姓名:{$user->name},年龄:{$user->age}";}public function write2(){// 声明了一个变量,工资1万,它不是属性,是私有变量,局部变量$salary = 10000;// 访问类属性// 1.实例化// 问题1:类的名称被限定,使用self可以引用当前的类名称$user = new self;// $this会自动创建,$this = new self;// 2.访问类成员// 问题2:类的实例,只需要一个实例的引用// 引用当前类的实例:$thisreturn "姓名:{$this->name},年龄:{$this->age}, 工资:{$salary}";}// 类方法中访问 类的外部成员:变量和函数public function write3(){// 调用外部函数$str = hello();// 调用外部变量GLOBALSreturn $str . $GLOBALS['username'];}// 实际项目中,外部成员应该通过方法参数注入到方法,而不是在方法中直接调用// 依赖注入public function write4(Closure $hello, string $username){// 调用外部函数和变量return $hello() . $username;}// 静态方法:用类直接调用,只能访问静态成员,国籍public static function write5(){return "国籍:" . self::$nation;}}// 客户端代码$user = new User;echo $user->write1();echo '<hr>';echo $user->write2();echo '<hr>';// 外部函数function hello(){return 'word';}$hello = function () {return 'word';};// 外部变量$username = '小刘';echo $user->write3();echo '<hr>';echo $user->write4($hello, $username);echo '<hr>';echo $user->write5();

<?php// 类成员的访问控制class User{// public:公共成员,默认值public $name = "小芳";// private:私有成员,只能本类内部使用,外部和子类都不可以private $age = 20;// protected:受保护成员,外部不能用,内部和子类都可以protected $salary = 9500;// 类内部访问public function write(){echo $user->salary;return "姓名:{$this->name}, 年龄:{$this->age}, 工资:{$this->salary}";}}// 子类,只有public和protected可见class Rob extends User{public function write(){return "姓名:{$this->name}, 工资:{$this->salary}";}}// 1.类的外部访问$user = new User;echo $user->name;// 2.类内部访问echo '<hr>';echo $user->write();// 3.访问子类echo '<hr>';echo (new Rob)->write();// 4.类的私有成员,年龄private:私有成员 只能本类内部使用,外部和子类都不可以// 5.protected:受保护成员,外部不能用,内部和子类都可以
<?php// 类的继承或扩展// 变量是数据复用,函数是代码复用,继承是类的复用// final class User:类禁止扩展class User{protected $name = '小李';// 方法// final public function write()方法禁止重写public function write(){return "姓名:{$this->name}";}}// 扩展类/子类class Rob extends User{// 1.扩展// 属性扩展protected $age = 30;// 方法扩展public function write(){return parent::write() . ", 年龄:{$this->age}";}// 2.重写// 属性重写// protected $name = '小明';// 方法重写// public function write()// {// return "{$this->name} : {$this->age} 岁";// }}// 调用$rob = new Rob;echo $rob->write();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号