PHP语言 -- 面向对象

1.定义类

class Ren
{
public $name; //定义成员变量
var $sex;


function Say()  //定义方法
{
echo "这个人在讲话";
}
}

2.实例化

$ren = new Ren();  //实例化

$ren->name="张三"; //调用成员 变量
$ren->sex="女";

$ren->Say();//调用方法

3.this引用

class Ren
{
public $name;
public $sex;

public function Say()
{
echo $this->name."这个人在说话";  //this 代表对象 不是类
}
}

$ren= new Ren();

$ren->name="张三";

$ren->Say();

4.构造函数

class Ren
{ 
public $name;
public $sex;
   
function __construct($name,$sex)  //构造函数
{
$this->name=$name;
$this->sex = $sex;
}

}

$ren = new Ren("李四","男");

5.析构函数

function __destruct()  //销毁对象 施放内存,关闭连接等  自动执行
{
echo "该对象马上要销毁了";
}

 6.封装

class Ren
{
private $name; //将成员变量 私有
private $sex;
private $age;

//封装:访问成员变量的方法
    public function SetAge($age)
    {
        if($age > 18 && $age <80)
        {
        $this->age = $age;
        }
    } 

//封装:简便方法赋值 ,自动调用
   public function __set($name,$value)
    {
    if($name=="age")
    {
        if($value>18 && $value <80)
        {
        $this->$name = $value;
        }
    }
    else
    {
    $this->$name = $value;
    }
    }  
//封装:简便方法获取值
    public function __get($name)
    {
    return $this->name;
    } 
    
}

$ren = new Ren("李四","男")

$ren->name = "什么";    

echo $ren->sex;    

7.继承

class Student extends Ren
{
//父类方法重写
function Say()
{
 parent::Say();  //调用父类方法 
 echo "这是子类的方法";
}
}

8.关键字

final  用来修饰类 ,如果把一个类定义成final类,该类就无法被继承了

final class Ren
{
}

static 静态的

class Student
{
static public $class;//定义静态变量
static function Say() //定义静态方法
{
echo "aaaa";
}
}

Student::$class = "hello";//调用静态变量

echo Student::$class

Student::$class;//调用静态方法

const 在类里定义常量

const ss=3.14; //定义常量

echo Studen::ss

 9.多态

1).必须要发生在继承下

2).子类对父类的方法进行重写

3).在PHP中多态表现的不明显

10.tostring()方法,系统自带,用处不是很大,在输出对象时,返回对象的信息

function __tostring()

{

  return "这是个类";

}

10.克隆对象  关键字:clone

$ren = new Ren();

$r1 = clone $ren;
function __clone()
{
  $this->age=18; //$this 找的是副本
}

 11.加载类

include("文件路径"); 

require_once("文件路径");

include "文件路径";

require_once "文件路径";
原文地址:https://www.cnblogs.com/yifangtongxing/p/5353281.html