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中使用XML
Oct 09 PHP
用PHP实现验证码功能
Oct 09 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Jan 22 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
Dec 30 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/02/28 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
Python在Console下显示文本进度条的方法
2016/02/14 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Python实现简易过滤删除数字的方法小结
2019/01/09 Python
python3中rank函数的用法
2019/11/27 Python
Django密码存储策略分析
2020/01/09 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
python基于opencv 实现图像时钟
2021/01/04 Python
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
优秀教师演讲稿
2014/05/06 职场文书
小学课外阅读总结
2014/07/09 职场文书
运动会演讲稿200字
2014/08/25 职场文书
十岁生日答谢词
2015/01/05 职场文书
消防宣传语大全
2015/07/13 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis