php4和php5区别是什么

导语:PHP4和PHP5,已经是两个版本了。下面的是百分网小编为大家搜集的php4和php5区别,供大家参考。

PHP5 中的对象已经进行了较系统、较全面的调整,现在的样子可能看起来会有些类似于 Java。本小节着重讲述 PHP5 中新的对象模式,并举了一些较简易的例子来说明。就让本节成为你的 PHP5 之旅的一个新起点吧。:)

* 构造函数和析构函数

* 对象的引用

* 对象的克隆

* 对象中的私有、公共及受保护模式

* 接口 (Interfaces)

* 抽象类

* __call

* __set 和 __get

* 静态成员

构造函数和析构函数

在 PHP4 中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在 PHP4 中没有析构函数的概念。

在 PHP5 中,构造函数被统一命名为 __construct,并且引入了析构函数的概念,被统一命名为 __destruct。

例一:构造函数和析构函数

class foo {

var $x;

function __construct($x) {

$this->x = $x;

}

function display() {

print($this->x);

}

function __destruct() {

print("bye bye");

}

}

$o1 = new foo(4);

$o1->display();

?>

在上面的例子中,当你终止调用 foo 类的时候,其析构函数将会被调用,上例中会输出 “bye bye”。

对象的引用

众所周知,在PHP4 中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号 “&” 来声明是要做一个引用,而不是一个 Copy。在 PHP5 中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。

例二:对象的引用

class foo {

var $x;

function setX($x) {

$this->x = $x;

}

function getX() {

return $this->x;

}

}

$o1 = new foo;

$o1->setX(4);

$o2 = $o1;

$o1->setX(5);

if($o1->getX() == $o2->getX()) print("Oh my god!");

?>

对象的克隆

如上所述,当一个对象始终以引用的形式来被调用时,如果我想得到该对象的`一个副本,该怎么办呢?PHP5 提供了一个新的功能,就是对象的克隆,语法为 __clone。

例三:对象的克隆

class foo {

var $x;

function setX($x) {

$this->x = $x;

}

function getX() {

return $this->x;

}

}

$o1 = new foo;

$o1->setX(4);

$o2 = $o1->__clone();

$o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant");

?>

对象克隆的方法在其它很多应用程序语言中都是存在的,所以你不必担心它的稳定性。:)

对象中的私有、公共及保护模式

PHP4 中,一个对象的所有方法和变量都是公共的,这意味着你可以在一个对象的外部操作其中的任意一个变量和方法。PHP5 引入了三种新的用来控制这种存取权限的模式,它们是:公共的(Public)、受保护的(Protected)及私有的(Private)。

【php4和php5区别是什么】相关文章:

php4和php5的区别,php4和php5区别是什么相关推荐

  1. php7与php5的区别,PHP7和PHP5区别

    PHP7比PHP5.0 ~ 5.6快了近5倍,同时还降低了对系统资源的占用.主要是PHP7对Zend引擎进行了深度优化. 之前在书上看到过两者比较全面的区别,回头去翻了翻书[眼过千遍,不如手过一遍啊] ...

  2. 从PHP5.2.x迁移到PHP5.3.x

    从PHP5.2.x迁移到PHP5.3.x 从PHP5.2.x迁移到PHP5.3.x,这是官方提供的Migrating from PHP 5.2.x to PHP 5.3.x的翻译.还未完成. 文章参考 ...

  3. linux php 升级5.3,Linux php5.2.10升级到PHP5.3.29

    成都这边的程序员要求把PHP从5.2.10版本升级到5.3.29版本. #cd /Data/App_php/ #wget http://cn2.php.net/get/php-5.3.29.tar.g ...

  4. php4和php5的区别,什么是PHP 4和PHP 5之间的区别是什么-php是什么文件

    ? 尽管PHP 5是故意设计成兼容尽可能与以前的版本,也有一些显著的变化. 其中的一些变化包括: · 一个新的OOP模型基础上,Zend引擎2.0 · 改进MySQL支持的一个新推广 · 内置SQLi ...

  5. php7 php5 区别,php7与php5的区别有哪些?

    PHP7距正式发布以及有挺长时间了,刚出道就号称比旧版本快了几倍,各种开源框架或系统运行在PHP7上速度效率提高了几倍.那么php7和php5之间的区别是什么? php5与php7之间的区别: 1.性 ...

  6. 组件php53 php55区别,分享下php5类中三种数据类型的区别

    public: 公有类型 在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中可以能过$obj->var ...

  7. [转] php5.3 PHP5.4 PHP5.5 新特性/使用PHP5.5要注意的

    因为用到PHP新版本,一些新特性必须要了解,且有些可以在开发时就使用,如果不使用,那么何必升级PHP版本呢,显得有些得不偿失了! 所以整理了一下 一些特性,有可能不全,待添加 PHP 5.3中的新特性 ...

  8. php5.3.28安装,安装php-5.3.28 时问题

    1:configure: error:xm12-config not ffound.please check your libxm12 installation [root@rh-linux /]# ...

  9. iis6 php5.3 mysql_Win 2003下IIS6+Mysql+php5.2  isapi搭建 升级php5.2到5.3测试 借助fastcgi实现...

    Win 2003下IIS6+Mysql+php5.2  原环境isapi搭建 升级php5.2到5.3测试 借助fastcgi实现 操作如下 实验前准备:php-5.3.5-Win32-VC6-x86 ...

最新文章

  1. Spring官方为什么建议构造器注入?
  2. jointable 能加多个字段吗_Excel函数Countif、Countifs超级实用技巧,你真的都掌握吗?...
  3. T-SQL 根据年月日创建DateTime
  4. 别再说你不会ElasticSearch,都给你整理好了
  5. 多核处理器_基于NXP i.MX8MM多核应用处理器设计的智能加油机
  6. 前端学习(3180):ant-design介绍3
  7. Pandas GroupBy对象 索引与迭代
  8. Android NDK开发之 NDK 局部 全局引用
  9. Ubunu16.04安装CPU版本Tensorflow
  10. 数据治理——如何处理“脏数据”
  11. Matlab用巴特沃斯带通滤波器产生窄带高斯噪声并进行时域频域分析
  12. 分布式文件系统(Distributed File System,DFS)
  13. 向前的快捷键_快速提高逼格的电脑快捷键你懂多少?
  14. ubuntu 安装浏览器flash插件
  15. 智能手机 + 机器学习 = 个人终端的未来
  16. anaconda python降级有影响吗_anaconda更新所有降级包
  17. LocalDateTime 的用法
  18. 新媒体运营:内容运营的核心与技巧
  19. 【repost】如何学好编程 (精挑细选编程教程,帮助现在在校学生学好编程,让你门找到编程的方向)四个方法总有一个学好编程的方法适合你...
  20. EasyCode .Net 代码生成器 之QQ群

热门文章

  1. 并查集-----好忧伤的并查集
  2. 基于koajs的web项目构建-心得篇
  3. REST 架构是什么
  4. 11gR2RAC环境DBCA创建一个数据库错误ORA-15055 ORA-15001
  5. Sun Solaris 9 下Squid 代理服务器的配置笔记
  6. DPOS机制会比POW机制表现更好吗?
  7. 升级之后的BCH将推动游戏业更上一层楼
  8. 【C++/C】【学习笔记】二分算法——处理“最小却最大”问题
  9. Vuforia Android 6 Camera Error
  10. 配置SQL Server 2008 镜像