1. 创建类、实例化、命名空间、类成员、类方法(手写)
# self: 当前类本身,如动物
# $this: 当前类实例化后的具体实例对象,如老虎
# 命名空间
namespace admin;
class Demo{
CONST SEX = '男';
# 静态属性
static $name = '小明';
static $age = '18';
# 属性
public $product = '健身自行车';
public $price = 3800;
# 静态方法
public static function getInfo1(){
# self可访问静态属性,静态方法,及const常量
return '姓名: ' .self::$name. '<br>年龄: ' .self::$age. '<br>性别:' .self::SEX. '<hr>';
}
# 实例方法
public function getInfo2(){
# 在类中使用伪变量: "$this" 引用当前类的实例, $this = new self();
# $this可访问非静态的方法和属性
return '品名: ' .$this->product .'<br>价格: ' . $this->price . '<br>';
}
}
# 静态方法无需实例化
echo Demo::getInfo1();
# 类实例化
$obj = new Demo();
echo $obj->getInfo2();
2. 构造方法
namespace admin;
class Demo{
# 实例属性
public $product1;
public $price;
# 构造方法
public function __construct( $product, $price ){
$this->product1 = $product;
$this->price = $price;
}
# 对象方法
public function getInfo(){
return '品名: ' .$this->product1 .'<br>价格: ' . $this->price . '<br>';
}
# 析构方法: 在对象被删除/清理时自动调用
public function __destruct(){
echo '<h3 style="color:red">对象已被清理</h3>';
}
}
# 实例化
$obj = new Demo('扫地机', 3900);
echo $obj->getInfo();