PHP4跟PHP5中的引用&
PHP4和PHP5中的引用&
文章转载自重庆PHP,原文地址:http://www.php-chongqing.com/index.php/article/104
PHP提供了引用操作符(&),在PHP中引用的意思是用不同的名字访问同一个变量内容,PHP4和PHP5中的对象引用是有区别的。
$a = 8; $b = $a; echo '$a:' . $a; // 8 echo '$b:' . $b; // 8 $a = 12; echo '$a:' . $a; // 12 echo '$b:' . $b; // 8
首先创建变量$a,把整数8赋值给$a,然后把$a赋给$b,这时候PHP创建一个$a的副本,再把这个副本赋给$b,通俗点说就是内存中产生了两个变量,变量的值都是8,这两个变量一个指向$a,一个指向$b,所以打印结果$a和$b都是12,接着我们将12赋给$a,然后再打印$a和$b,可以看到$a的值变成12了,而$b的值还是8,这个很容易理解,因为$a和$b是两个完全不相干的变量。
$a = 8; $b &= $a; echo '$a:' . $a; // 8 echo '$b:' . $b; // 8 $a = 12; echo '$a:' . $a; // 12 echo '$b:' . $b; // 12
首先创建变量$a,把整数8赋值给$a,然后把$a赋给$b,注意是使用的&引用赋值,打印$a和$b,两个变量的均为8;接着我们把12赋给$a,再打印$a和$b,可以看到$b的值也变成12了。PHP的引用操作符(&),可以不让程序产生一个副本,$a和$b指向同一块内存区域,即$a和$b是同一个变量,所以当$a的值发生变化时,$b的值也会跟着发生变化。这就好比‘张三’,上学的时候同学们给取个绰号‘三娃’,无论是‘张三’还是‘三娃’所指的都是那一百多斤,都是指的同一个人。
在PHP4中,当你创建对象并将其赋值给其它变量时,PHP4总是会产生一个该对象的副本,将整个对象及所有内容复制过去。PHP4的这种对象处理方式非常的糟糕,复制对象会让程序占用更多的内存,复制对象往往还会引起一些莫名其妙的错误。这种糟糕的对象处理方式在PHP5中得到了改善,在PHP5中对象总是以引用的方式传递。
$user = new User(); $user->name = 'zhangsan'; $bing = $user; $bing->name = 'bing.peng'; echo $user->name; // For PHP4: zhangsan For PHP5: bing.peng
在PHP4下运行上面的代码,打印出来的是:‘zhangsan’;在PHP5下打印结果为:‘bing.peng’,可以看到PHP5默认就是使用引用赋值,注意PHP5只是对象类型默认使用引用赋值,基本类型还是会产生副本,那么要在PHP5中复制对象,需要使用clone关键字来完成,如果想要在PHP4中得到同样的效果,我们就需要使用引用操作符,代码如下:
$user = new User(); $user->name = 'zhangsan'; $bing &= $user; $bing->name = 'bing.peng'; echo $user->name;

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

必应(Bing)是微软公司推出的一款网络搜索引擎,搜索功能非常强大,分了国内版和国际版两个入口。这两个版本入口在哪呢?要怎么访问国际版呢?下面就来看看详细内容。 必应中国版网址入口:https://cn.bing.com/ 必应国际版网址入口:https://global.bing.com/ 必应国际版怎么访问? 1、首先输入打开必应的网址入口:https://www.bing.com/ 2、可以看到有国内版跟国际版的选项,我们只需要选择国际版,输入关键词即可。

php5和php8的区别在性能、语言结构、类型系统、错误处理、异步编程、标准库函数和安全性等方面。详细介绍:1、性能提升,PHP8相对于PHP5来说在性能方面有了巨大的提升,PHP8引入了JIT编译器,可以对一些高频执行的代码进行编译和优化,从而提高运行速度;2、语言结构改进,PHP8引入了一些新的语言结构和功能,PHP8支持命名参数,允许开发者通过参数名而不是参数顺序等等。

本文将介绍七种利用免费的BingImageCreator获得高质量输出的方法。BingImageCreator(现称为MicrosoftDesigner的ImageCreator)是一个出色的在线人工智能艺术生成器之一。它能根据用户的提示生成高度逼真的视觉效果。提示越具体、清晰和创意,生成的效果也会更出色。BingImageCreator在创建高质量图像方面取得了重大进展。它现在使用Dall-E3培训模式,显示出更高水平的细节和现实主义。然而,它能否始终如一地生成高清结果取决于几个因素,包括快速

在当今科技快速发展的时代,编程语言也如雨后春笋般涌现出来。其中一门备受瞩目的语言就是Go语言,它以其简洁、高效、并发安全等特性受到了许多开发者的喜爱。Go语言以其强大的生态系统而著称,其中有许多优秀的开源项目。本文将介绍五个精选的Go语言开源项目,带领读者一起探索Go语言开源项目的世界。KubernetesKubernetes是一个开源的容器编排引擎,用于自

php5改80端口的方法:1、编辑Apache服务器的配置文件中的端口号;2、辑PHP的配置文件以确保PHP在新端口上工作;3、重启Apache服务器,PHP应用程序将开始在新的端口上运行。

2023 年将被称为 AI 聊天机器人年。首先,ChatGPT 的成功公开发布,以及现在将 GPT-4 集成到新的 Bing 中,让每个人都想赶上潮流,直接从他们的浏览器访问最新的 AI 聊天机器人。 但是如何与 Bing AI 聊天,你能单独用你的声音与它交谈吗?这里有您需要知道的一切以及更多信息。 获取新的 Bing目前,微软只向少数特定用户推出新的 Bing。但是,一旦测

《Go语言开发必备:5个热门框架推荐》Go语言作为一门快速、高效的编程语言,受到越来越多开发者的青睐。为了提高开发效率,优化代码结构,很多开发者选择使用框架来快速搭建应用。在Go语言的世界中,有许多优秀的框架可供选择。本文将介绍5个热门的Go语言框架,并提供具体的代码示例,帮助读者更好地理解和使用这些框架。1.GinGin是一个轻量级的Web框架,拥有快速

Laravel是一个流行的PHP框架,具有高度可扩展性和高效性,它提供了很多强大的工具和库,让开发者可以快速构建高质量的Web应用程序。其中,LaravelEcho和Pusher是两个非常重要的工具,通过它们可以很容易地实现WebSockets通信,本文将详细介绍如何在Laravel应用程序中使用这两个工具。什么是WebSockets?WebSockets
