php4和php5的区别,php4和php5区别是什么
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区别是什么相关推荐
- php7与php5的区别,PHP7和PHP5区别
PHP7比PHP5.0 ~ 5.6快了近5倍,同时还降低了对系统资源的占用.主要是PHP7对Zend引擎进行了深度优化. 之前在书上看到过两者比较全面的区别,回头去翻了翻书[眼过千遍,不如手过一遍啊] ...
- 从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的翻译.还未完成. 文章参考 ...
- 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 ...
- php4和php5的区别,什么是PHP 4和PHP 5之间的区别是什么-php是什么文件
? 尽管PHP 5是故意设计成兼容尽可能与以前的版本,也有一些显著的变化. 其中的一些变化包括: · 一个新的OOP模型基础上,Zend引擎2.0 · 改进MySQL支持的一个新推广 · 内置SQLi ...
- php7 php5 区别,php7与php5的区别有哪些?
PHP7距正式发布以及有挺长时间了,刚出道就号称比旧版本快了几倍,各种开源框架或系统运行在PHP7上速度效率提高了几倍.那么php7和php5之间的区别是什么? php5与php7之间的区别: 1.性 ...
- 组件php53 php55区别,分享下php5类中三种数据类型的区别
public: 公有类型 在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法 在实例中可以能过$obj->var ...
- [转] php5.3 PHP5.4 PHP5.5 新特性/使用PHP5.5要注意的
因为用到PHP新版本,一些新特性必须要了解,且有些可以在开发时就使用,如果不使用,那么何必升级PHP版本呢,显得有些得不偿失了! 所以整理了一下 一些特性,有可能不全,待添加 PHP 5.3中的新特性 ...
- php5.3.28安装,安装php-5.3.28 时问题
1:configure: error:xm12-config not ffound.please check your libxm12 installation [root@rh-linux /]# ...
- 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 ...
最新文章
- Spring官方为什么建议构造器注入?
- jointable 能加多个字段吗_Excel函数Countif、Countifs超级实用技巧,你真的都掌握吗?...
- T-SQL 根据年月日创建DateTime
- 别再说你不会ElasticSearch,都给你整理好了
- 多核处理器_基于NXP i.MX8MM多核应用处理器设计的智能加油机
- 前端学习(3180):ant-design介绍3
- Pandas GroupBy对象 索引与迭代
- Android NDK开发之 NDK 局部 全局引用
- Ubunu16.04安装CPU版本Tensorflow
- 数据治理——如何处理“脏数据”
- Matlab用巴特沃斯带通滤波器产生窄带高斯噪声并进行时域频域分析
- 分布式文件系统(Distributed File System,DFS)
- 向前的快捷键_快速提高逼格的电脑快捷键你懂多少?
- ubuntu 安装浏览器flash插件
- 智能手机 + 机器学习 = 个人终端的未来
- anaconda python降级有影响吗_anaconda更新所有降级包
- LocalDateTime 的用法
- 新媒体运营:内容运营的核心与技巧
- 【repost】如何学好编程 (精挑细选编程教程,帮助现在在校学生学好编程,让你门找到编程的方向)四个方法总有一个学好编程的方法适合你...
- EasyCode .Net 代码生成器 之QQ群