千家信息网

PHP中高级特性的示例分析

发表于:2025-01-15 作者:千家信息网编辑
千家信息网最后更新 2025年01月15日,小编给大家分享一下PHP中高级特性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:静态属性
千家信息网最后更新 2025年01月15日PHP中高级特性的示例分析

小编给大家分享一下PHP中高级特性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体如下:

静态属性

输出:0 hello

点评:静态属性和方法,可以通过类直接调用。

SELF

输出:

hello (1)hello (2)hello (3)

点评:self 指向当前类, this指向当前对象。self可以调用当前类的静态属性和方法。this指向当前对象。self可以调用当前类的静态属性和方法。this可以调用当前类的正常属性和方法。

常量属性

输出:0

点评:常量只能用大写字母,并且可以通过类直接调用。

接口

price;  }  // ...}$product = new ShopProduct();?>

如果没有实现getPrice方法,将会报错。

Fatal error: Class ShopProduct contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Chargeable::getPrice)

继承类与接口

抽象类

先来看一段代码

输出:

Document Object()

静态方法

group = static::getGroup();//static 静态类  }  public static function create() {    return new static();  }  static function getGroup() { // 静态方法    return "default";  }}class User extends DomainObject {}class Document extends DomainObject {  static function getGroup() { // 改变了内容    return "document";  }}class SpreadSheet extends Document { // 继承之后,group也就与document相同了}print_r(User::create());print_r(SpreadSheet::create());?>

输出:

User Object(  [group:DomainObject:private] => default)SpreadSheet Object(  [group:DomainObject:private] => document)

final字段

使类无法被继承,用的不多

输出:

Fatal error: Class IllegalCheckout may not inherit from final class (Checkout)

final方法不能够被重写

输出:

Fatal error: Cannot override final method Checkout::totalize()

析构函数

name = $name;    $this->age = $age;  }  function setId( $id ) {    $this->id = $id;  }  function __destruct() { // 析构函数    if ( ! empty( $this->id ) ) {      // save Person data      print "saving person\n";    }    if ( empty( $this->id ) ) {      // save Person data      print "do nothing\n";    }  }}$person = new Person( "bob", 44 );$person->setId( 343 );$person->setId( '' ); // 最后执行析构函数,使用完之后执行?>

输出:

do nothing

__clone方法

克隆的时候执行

name = $name;    $this->age = $age;  }  function setId( $id ) {    $this->id = $id;  }  function __clone() { // 克隆时候执行    $this->id = 0;  }}$person = new Person( "bob", 44 );$person->setId( 343 );$person2 = clone $person;print_r( $person );print_r( $person2 );?>

输出:

Person Object(  [name:Person:private] => bob  [age:Person:private] => 44  [id:Person:private] => 343)Person Object(  [name:Person:private] => bob  [age:Person:private] => 44  [id:Person:private] => 0)

再看一个例子

balance = $balance;  }}class Person {  private $name;  private $age;  private $id;  public $account;  function __construct( $name, $age, Account $account ) {    $this->name = $name;    $this->age = $age;    $this->account = $account;  }  function setId( $id ) {    $this->id = $id;  }  function __clone() {    $this->id  = 0;  }}$person = new Person( "bob", 44, new Account( 200 ) ); // 以类对象作为参数$person->setId( 343 );$person2 = clone $person;// give $person some money$person->account->balance += 10;// $person2 sees the credit tooprint $person2->account->balance; // person的属性account也是一个类,他的属性balance的值是210// output:// 210?>

点评:学习还是能够开拓大脑的,今天终于明白为什么有多个箭头的概念了$person->account->balance。这里的account属性是一个对象。

__toString

getName()." (age ";    $desc .= $this->getAge().")";    return $desc;  }}$person = new Person();print $person; // 打印时候集中处理// Bob (age 44)?>

以上是"PHP中高级特性的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

属性 方法 输出 静态 对象 内容 函数 指向 时候 篇文章 中高级 特性 示例 分析 可以通过 常量 接口 学习 相同 不怎么 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库更新丢失 通讯软件开发过程创意 没收数据库布瑞尔 新迈拓网络技术 数据库的数字类型有哪些 像素枪战怎么快速连接服务器 web服务器压力测试报告 重庆潮流软件开发价钱 家长会网络安全教育材料 上位机界面用什么软件开发 计算机网络技术概念思维导图 网络安全监控的技术参数 未启动网络安全防护 电脑如何更改数据库 计算机网络技术与计算机专业 最好的软件开发笔记本 嘉定区方便网络技术来电咨询 网络安全基础pdf百度云 中文期刊最多的数据库 neo2t续航小白测评数据库 东南大学网络技术与安全 个人热点的网络安全密钥忘了 智慧公安网络安全比武竞赛 网络安全行业产业链结构包括 pubg韩服日服是一个服务器吗 手机软件开发要求文凭吗 杭州众人互联网科技有限公司 微信后台服务器会保存图片多久 精灵觉醒服务器多少天一个 近几年网络安全重大事件
0