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 选项及相关信息函数库
Dec 04 PHP
PHP 工厂模式使用方法
May 18 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
php学习笔记之面向对象
Nov 08 PHP
php文件夹的创建与删除方法
Jan 24 PHP
php超快高效率统计大文件行数
Jul 05 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 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
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
Javascript中arguments对象详解
2014/10/22 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
浅谈python中get pass用法
2019/03/19 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
python 常见的反爬虫策略
2020/09/27 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
师范毕业生求职自荐信
2013/09/25 职场文书
股东合作协议书
2014/04/14 职场文书
婚前财产协议书范本
2014/10/19 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
工作年限证明模板
2015/06/15 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL