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中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
Yii数据库缓存实例分析
Mar 29 PHP
PHP书写格式详解(必看)
May 23 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
PHP的自定义模板引擎
Mar 24 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
laravel 配置路由 api和web定义的路由的区别详解
Sep 03 PHP
Yii 框架控制器创建使用及控制器响应操作示例
Oct 14 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
PHP函数超时处理方法
2016/02/14 PHP
php实现xml与json之间的相互转换功能实例
2016/07/07 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
2019/04/02 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
Python异常学习笔记
2015/02/03 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python 文件处理注意事项总结
2017/04/10 Python
Python程序退出方式小结
2017/12/09 Python
详解python 爬取12306验证码
2019/05/10 Python
python日志logging模块使用方法分析
2019/05/23 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
世界上最大的艺术社区:SAA
2020/12/30 全球购物
学生出入校管理制度
2014/01/16 职场文书
党员创先争优心得体会
2014/09/11 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android