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 相关文章推荐
[FAQ]PHP中的一些常识:类篇
Oct 09 PHP
黑夜路人出的几道php笔试题
Aug 04 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
关于尾递归的使用详解
May 02 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
Laravel框架验证码类用法实例分析
Sep 11 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的字符串用法小结
2010/06/08 PHP
php自动加载机制的深入分析
2013/06/08 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
利用python获得时间的实例说明
2013/03/25 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python中selenium库的基本使用详解
2020/07/31 Python
python绘制雷达图实例讲解
2021/01/03 Python
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
宝信软件JAVA工程师面试经历
2012/08/19 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
大学生专科毕业生自我评价
2013/11/17 职场文书
高二生物教学反思
2014/01/27 职场文书
神龙架导游词
2015/02/11 职场文书
广告业务员岗位职责
2015/02/13 职场文书
元旦主持词开场白
2015/05/29 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书