• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP面向对象中常用的关键字和魔术方法详解

php 搞代码 4年前 (2022-01-22) 38次浏览 已收录 0个评论

本篇文章主要介绍PHP面向对象中常用的关键字和魔术方法详解,感兴趣的朋友参考下,希望对大家有所帮助。

PHP面向对象中常用的关键字

final

1.final不能修饰成员属性(类中常量不是用这个关键字)

2.final只能修饰类和方法

作用:

使用final修饰的类不能被子类继承

使用final修饰的方法不能被子类覆盖

用来限制类不被继承,方法不被覆盖就使用final

<?php<p>+本文来源gao!%daima.com搞$代*!码9网(</p><strong>搞gaodaima代码</strong>//final修饰的类不能被继承final class Person{  var $name;  var $age;  var $sex;  function __construct($name,$age,$sex){    $this->name=$name;    $this->age=$age;    $this->sex=$sex;  }  function fun1(){    echo $this->name;  }}//Student类继承类用final修饰的Person类,所以会报错class Student extends Person{}$stu=new Student("zs",20,"nan");$stu->fun1();?>

static(静态关键字)

1.使用static可以修饰成员属性和成员方法,不能修饰类

2.用static修饰的成员属性,可以被同一个类的所有对象共享

3.静态的数据是存在内存中的数据段中(初始化静态段)

4.静态的数据是在类被第一次加载时分配到内存中的,以后再用到类时就直接从数据段中获取

5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现)

6.静态方法(static修饰的方法),不能访问非静态的成员(在非静态方法中可以访问静态成员)

因为非静态的成员,就必须用对象来访问,访问内部成员使用的就是$this,而静态方法不用使用对象调用,也就没有对象,$this也就不能代表对象,非静态的成员还必须使用对象

如果你确定一个方法中不使用非静态成员,则可以将这个方法声明为即静态方法

注意:静态的成员都要使用类名去访问,不要创建对象,不用对象访问

类名::静态成员

如果在类中使用静态成员,可以使用self代表本类

const

1.它只能修饰成员属性

2.类中声明常量属性使用const

3.访问方式和static静态成员属性一样(在类外部使用 类名::常量 在类内部使用 self::常量)

4.常量一定要在声明的时候就给初值

<?php//定义一个类“人们”class Person{  protected $name;  protected $age;  protected $sex;  static $country="中国";  //声明一个常量  const RUN="走";  //构造方法  function __construct($name,$age,$sex){    $this->name=$name;    $this->age=$age;    $this->sex=$sex;  }  function getCountry(){    //如果在类中使用静态成员,可以使用self代表本类    return self::$country;  }  function say(){    echo "我的名字:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>";  }  protected function eat(){    echo "吃饭!<br>";  }  function run(){    //在类的内部使用常量 self::常量    echo self::RUN."<br>";  }  //声明静态的方法  static function hello(){    echo "你好<br>";  }}

PHP面向对象中常用的魔术方法

__call()

作用:调用对象中不存在的方法时,就会出现系统报错,然后程序退出。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP面向对象中常用的关键字和魔术方法详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址