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 相关文章推荐
PHP个人网站架设连环讲(四)
Oct 09 PHP
如何使用PHP往windows中添加用户
Dec 06 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
php依赖注入知识点详解
Sep 23 PHP
PHP实现15位身份证号转18位的方法分析
Oct 16 PHP
PHP程序守护进程化实现方法详解
Jul 16 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
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
2008/12/19 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python环境变量设置方法
2016/08/28 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python实现的选择排序算法示例
2017/11/29 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
python实现文件的备份流程详解
2019/06/18 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
python的链表基础知识点
2020/09/13 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
linux面试题参考答案(10)
2016/10/26 面试题
洗发水广告词
2014/03/13 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL