Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:类与对象的基础知识, 对后面的学习很重要
<?php
// 类的声明
class User
{
// 类成员
// 1.类属性
// 2.类方法
}
// 类的实例化-对象(用于创作的一个个独立的个体)
$user = new User;
var_dump($user);
echo '<hr>';
// 检测对象是否某个类的实例
var_dump($user instanceof User);
echo '<hr>';
// 也可将类名放在变量中(动态类)
$name = 'User';
$j = new $name;
var_dump($j);
echo '<hr>';
// 也可以获取类名称
echo get_class($j);
<?php
class User
{
// 类成员
// 1.类属性(变量)
// 也支持数组,heredoc,nowdoc
public $name = '小殇';
public $id = [1, 2, 3, 4];
// 静态属性:如果一个属性仅使用一次,可以用static关键字,通过类直接调用
public static $location = '江西';
// 抽象属性(没有被初始化的属性,默认为null)
public $skill;
// 2.类方法(函数)
}
// 类的实例化-对象(用于创作的一个个独立的个体)
$user = new User;
// 访问类属性
echo $user->name, '<hr>';
print_r($user->id);
echo '<hr>';
// 通过类访问静态属性
echo User::$location, '<hr>';
// 访问抽象属性
var_dump($user->skill);
<?php
class User
{
// 类成员
// 1.类属性(变量)
public $name = '小殇';
public $sex = '男';
// 2.类方法(函数)
// 在类的内部$this代表着当前类的实例化对象 self代表当前类名
public function white()
{
// 方法中声明的变量不是属性,是私有变量
$love = '打游戏';
// 访问外部成员(函数,变量)
// 函数可以直接调用,变量可以用关键字global声明或者$GLOBALS超全局变量调用
$a = up();
return "姓名:{$this->name},性别:{$this->sex},爱好:{$love},人生格言:{$a}," . $GLOBALS['motto'];
}
// 依赖注入:通过参数方式调用外部变量
public function white1(closure $up, string $motto)
{
return $up() . $motto;
}
// 静态方法:不依赖实例直接用类访问不能使用$this->name,$this->sex
public static function white2()
{
return "所在地:" . self::$location;
}
}
// 类的实例化-对象(用于创作的一个个独立的个体)
$user = new User;
function up()
{
return '好好学习';
}
$up = function () {
return '好好学习';
};
$motto = '天天向上';
echo $user->white(), '<hr>';
echo $user->white1($up, $motto);
// 访问控制
class User
{
// 类成员
// 1.类属性(变量)
// public:公共成员,类的内部,外部,子类都能访问
public $name = '小殇';
// private:私有成员,仅本类使用,外部和子类都不能访问
private $sex = '男';
// protected:受保护的成员,本类和子类可使用,外部不能访问
protected $money = 5000;
public function white()
{
return "姓名:{$this->name},性别:{$this->sex},财产:{$this->money}";
}
}
class Rob extends User
{
public function white()
{
return "姓名:{$this->name},性别:{$this->sex},财产:{$this->money}";
}
}
$user = new User;
echo $user->white(), '<hr>';
$rob = new ROB;
echo $rob->white(), '<hr>';
echo $user->money;
public(公共成员)
private(私有成员)
protected(受保护成员)
<?php
// 类的继承(就是类的复用)
class User
{
// 类成员
// 1.类属性(变量)
protected $name = '小殇';
public function white()
{
return "姓名:{$this->name}";
}
}
// 子类
class Rob extends User
{
// 1.扩展
// 属性扩展
protected $money = 5000;
// 方法扩展
public function white()
{
return parent::white() . ",财产:{$this->money}";
}
// 2.重写
// 属性重写
protected $name = '小明';
// 方法重写
public function white1()
{
return "{$this->name}有{$this->money}元";
}
}
$rob = new Rob;
echo $rob->white(), '<hr>';
echo $rob->white1();
扩展
重写
1.了解类和对象的概念
2.了解了怎么访问类中各种成员的属性和方法