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 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
PHP 日常开发小技巧
Sep 23 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
php的POSIX 函数以及进程测试的深入分析
Jun 03 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
Nov 22 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
Aug 17 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 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
一个阿拉伯数字转中文数字的函数
2006/10/09 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
js汉字转拼音实现代码
2013/02/06 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python错误处理详解
2014/09/28 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
为Python程序添加图形化界面的教程
2015/04/29 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
车间统计员岗位职责
2014/01/05 职场文书
新领导上任欢迎词
2014/01/13 职场文书
师德个人剖析材料
2014/02/02 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
毕业论文致谢怎么写
2015/05/14 职场文书
golang正则之命名分组方式
2021/04/25 Golang
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
Python基础之变量的相关知识总结
2021/06/23 Python