PHP中引用类型和值类型功能与用法示例


Posted in PHP onFebruary 26, 2019

本文实例讲述了PHP中引用类型和值类型功能与用法。分享给大家供大家参考,具体如下:

PHP中的四种简单类型和复杂类型array都是值类型。同类型间赋值传递的是值,即创建一个副本给新变量。

例如:

$int1 = 123;
$int2 = $int1;//直接传递的是值,只是做了一个叫int1的副本叫int2
$int2 = 456;
echo $int1;//输出 123
echo $int1 === $int2;//为假
$int1 = 123;
$int2 = &$int1;//取地址符,传递的是引用
$int2 = 456;
echo $int1;//输出 456
echo $int1 === $int2;//输出 1.即为真

对象都是引用类型的,默认传递的就是引用,即新变量是旧变量的别名。

class Person{
    public $name;
}
$p1 = new Person();
$p1->name = 'Sheldon';
$p2 = $p1;
$p2->name = 'Leonard';
echo $p1->name;//输出:Lenoard
echo $p1 === $p2;//输出:1 即全等

如果想得到对象的一个副本(将复制旧变量的所有属性),从而互不影响,可以用clone关键字。

class Person {
    public $name;
}
$p1 = new Person();
$p1->name = 123;
$p2 = clone $p1;
echo $p2->name;//输出 123
$p2->name = 456;
echo $p1->name;//输出 123

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
多数据表共用一个页的新闻发布
Oct 09 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
destoon实现VIP排名一直在前面排序的方法
Aug 21 PHP
php实现计数器方法小结
Jan 05 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
php版微信自定义回复功能示例
Dec 05 PHP
php-fpm添加service服务的例子
Apr 27 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
php正则表达式使用方法整理集合
Jan 31 PHP
PHP5.6读写excel表格文件操作示例
Feb 26 #PHP
PHP中抽象类,接口功能、定义方法示例
Feb 26 #PHP
PHP htmlentities()函数用法讲解
Feb 25 #PHP
PHP html_entity_decode()函数讲解
Feb 25 #PHP
PHP hex2bin()函数用法讲解
Feb 25 #PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 #PHP
PHP封装的分页类与简单用法示例
Feb 25 #PHP
You might like
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
浅析PHP水印技术
2007/02/14 PHP
PHP教程 变量定义
2009/10/23 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
JavaScript Split()方法
2015/12/18 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
使用Vue实现一个树组件的示例
2020/11/06 Javascript
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python入门篇之列表和元组
2014/10/17 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
在Python 3中实现类型检查器的简单方法
2015/07/03 Python
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
python实现批量文件重命名
2019/10/31 Python
Python unittest框架操作实例解析
2020/04/13 Python
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
我未来的职业规划范文
2014/01/11 职场文书
物业总经理岗位职责
2014/02/28 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python