PHP面向对象:
一、如何定义类
声明类
class Dog
{
var $name;
var $age;
var $pinzhong;
function Jiao()
{
echo "{$this->name在叫}";#this代表当前对象
}
}
二、实例化对象
$dog = new Dog();
调用成员变量
$dog->name = "旺财";
$dog->age = 10;
$dog->pinzhong = "哈士奇";
调用方法
$dog->Jiao();
三、this关键字
$this->name;this代表该对象,如果要在成员方法中调用成员变量,一定要是用$this引用
四、构造函数
class Dog
{
var $name;
var $age;
var $pinzhong;
function __construct($n,$a,$p)#下划线有两个
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}
function Jiao()
{
echo "{$this->name在叫}";#this代表当前对象
}
}
$dog = new Dog("旺财",10,"金毛");
$dog->Jiao();
五、析构函数
class Dog
{
var $name;
var $age;
var $pinzhong;
function __construct($n,$a,$p)#下划线有两个
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}
function Jiao()
{
echo "{$this->name在叫}";#this代表当前对象
}
function __destruct()#析构函数
{
echo "拜拜";
}
}
$dog = new Dog("旺财",10,"金毛");
$dog->Jiao();
六、封装:
降类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。如果将变量设置为私有,,如何去访问:
1,自己写函数get函数set函数,然后来对变量赋值和取值
2,用系统自带的__get()函数和__set()函数来实现类里面的变量赋值和取值
class Dog
{
private $name;
private $age;
private $pinzhong;
/*function SetName($n)
{
$this->name = $n;
}
function SetAge($a)
{
if($a>=1 && $a<=5)
{
$this->name = $a;
}
}*/
function __set($name,$value)
{
$this->$name = $value;
}
function __get($name)
{
return $this->$name;
}
function __construct($n,$a,$p)#下划线有两个 类的构造函数,用new引用函数。
{
$this->name = $n;
$this->age = $a;
$this->pinzhong = $p;
}
function Jiao()
{
echo "{$this->name在叫},它{this->age}岁了";#this代表当前对象
}
function __destruct()#析构函数
{
echo "拜拜";
}
}
$dog = new Dog("旺财",10,"金毛");
$dog->name = "小强";
$dog->age = "3";
echo $dog->name;
$dog->Jiao();
七,继承
class HaShiQi extends Dog#哈士奇继承狗的类, 哈士奇是子类,狗类是父类
{
}
八、方法的重写 final将不能被继承,写在类前面
class HaShiQi extends Dog#哈士奇继承狗的类, 哈士奇是子类,狗类是父类
{
public static $height;
function Jiao()
{
pstrny::Jiao();#引用父类的方法,在子类中调用父类的方法 类调用方法用::
echo "hello";#另外添加的方法
}
function Gao()
{
echo "这么高".self::$height;self代表这个类 this 代表这个对象
}
}
HaShiQi::$height = 10;调用静态的成员
echo HaShiQi::$height;
$dog->jiao();
static 静态属于类的。而不是对象的。 例如粉笔的长度是非静态的,颜色是静态的。 颜色是属于类的,长度是属于对象的。
九、多态
条件:必须要继承,父类的引用指向子类的实例,重写函数。
tostring方法,在输出对象的时候可以显示该方法中的信息
$r1 =clone $ren 克隆对象
在克隆的时候会自动执行,该函数的目的就是将克隆出来的对象进行一些改变
引入页面 include(“china.php”)#同一页面
require_once "china.php"
include(“class/china.php”)
include(“../china。php”)
自动加载
function __autoload($classname)
{
require_oncce $classname . ".php"
}