1. 类和命名空间介绍
类的创建:
class Hello{
public function sayHello(){
echo 'hello php';
}
}
和java创建类特别的像;
类的实例化:$h = new hello();
。
使用类中的方法:$h->sayHello();
。
类文件同样可以在前面加上包名,加上包名后:
– 实例化:$h = new jikexueyuan\hello1();
。
– 使用类中的方法:$h->sayHello();
。
构造方法的创建:
class Man{
public function __construct(){
echo 'Construct a man';
}
}
其中,同样可以加参数在构造方法中。
class Man{
public function __construct($age,$name){
$this->_age = $age;
$this->_name = $name;
}
private $_age,$_name;
public function getAge(){
return $this->_age;
}
public function getName(){
return$this->_name;
}
}
2. 成员方法和类方法
成员方法的建立:
public function getName(){
return$this->_name;
}
类方法又叫静态方法的建立:
public static function sayHello(){
echo 'Hello Man';
}
静态方法的调用:Man::sayHello();
不用实例类,Man为php文件名称。
- 静态变量的声明:
private static $number = 100;
。 - 静态常量的声明:
const MAX_MAN_NUM = 200;
。 - 外界访问静态常量:
Man::MAX_MAN_NUM;
。
3. 类的继承与方法重写
继承:创建一个父类people.php
class People{
public function __construct($age,$name,$sex){
$this->_age = $age;
$this->_name = $name;
$this->_sex = $sex;
}
private $_age,$_name,$_sex;
public function getAge(){
return $this->_age;
}
public function getName(){
return $this->_name;
}
public function getSex(){
return $this->_sex;
}
public function hi(){
echo $this->_name.'say hi';
}
}
然后子类同java一样需要通过extends关键字来继承父类。
Man.php
require_once 'People.php';
class Man extends People {
public function __construct($age, $name){
parent::__construct($age, $name, '男');
}
}
至于方法的重写同java差不多,不过在子方法中有一段代码,可以决定是否调用父方法的代码
public function hi(){
//保留父类的方法,有这段代码就会执行父类方法,没有就不会执行。
parent::hi(); // TODO: Change the autogenerated stub
echo 'Man'.$this->getName().'sayHi';
}