PHP语言 -- 面向对象

Posted 一方通行o

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于PHP语言 -- 面向对象的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

PHP语言 -- 面向对象和面向过程的区别

PHP语言 -- 面向对象

PHP Closure(闭包)类详解

php是啥意思

PHP Closure(闭包)类详解