一.命名空间
1.默认情况下,同一空间下相同的类 、函数,常量,接口,相同的名称只能定义一次,为解决和管理名称相同但功能不相同的类、函数、常量,接口的情况,可以引入命名空间的方式进行解决
2.命名空间用namespace定义
3.没有定义的命名空间可称为匿名空间,匿名空间相当于全局空间。
4.在命名空间下我们甚至可以将关键字进行定义
实例
namespace one
{
class Test {}
//访问其他空间
(new \two\Test()) ->show();
}
namespace two
{
class Test {
public function show()
{
echo __METHOD__."
";
}
}
}
namespace three
{
class Test {}
echo Test::class;
}
运行实例 »
点击 "运行实例" 按钮查看在线实例
二.类的继承与实现
1.类用 class 关键字进行定义 ,类名的首字母通常大写,
2.类通过 $this-> 访问成员变量 和成员方法
3.构造函数:用于对象实例化时的对象的初始化 __construct()
4.析构方法:在对象被清理被删除的时候自动调用该方法 __destruct()
5.类的继承可以实现对父类的扩展和重写,关键字为extends
6.子类在使用过程种,如重写了父类方法,并不影响子类种调用父类成员方法的过程,调用使用parent::父类成员方法
实例
namespace demo1;
class eat
{
public $food1;
public $food2;
public function __construct($food1="米饭1",$food2="米饭2")
{
$this->food1=$food1;
$this->food2=$food2;
}
public function GetFood()
{
return "你是要这个金的".$this->food1."还是要这个银的".$this->food2;
}
}
class drink extends eat
{
public $water;
public function __construct($water,$food1 = "米饭1", $food2 = "米饭2")
{
parent::__construct($food1, $food2);
$this->water=$water;
}
public function eating()
{
return "吃着".$this->food1."就着".$this->water;
}
}
$drink = new drink("白开水","西北风");
echo $drink->eating();
运行实例 »
点击 "运行实例" 按钮查看在线实例