当前位置:首页 > CN2资讯 > 正文内容

php 赋值php 数组赋值

2天前CN2资讯
php赋值

普通赋值

通过=进行赋值。

对于数字,字符串,布尔值,null,数组等,用=将原变量的值拷贝到新变量中(传值赋值),所以改变其中一个并不影响另一个。

但是对于对象,用=赋值,不是拷贝,而是对对象的引用(也不是引用赋值,类似于js中的对象赋值)。

例子

// php 版本5.6.9 $a = 123; $b = $a; $a = 456; print $b; // 123 $aa = array( 0 => 123); $bb = $aa; $aa[0] = 456; print $bb[0]; // 123 // 对象赋值 -- 使用php手册中的例子 class SimpleClass {} $instance = new SimpleClass(); // new 操作符返回的是对所创建对象的引用 $assigned = $instance; // 普通赋值 $reference =& $instance; // 引用赋值 $instance->var = '$assigned will have this value'; $instance = null; // $instance and $reference become null. 改变$instance的值,$assigned的值并没有变化,所以对象的普通赋值不能说就是引用赋值。$reference的赋值才是真正的引用赋值:改变$instance的值,$reference的值跟着变。 var_dump($instance); // null var_dump($reference); // null var_dump($assigned); // SimpleClass 对象

对于对象的赋值可以这么理解:

首先,将PHP中的变量看成是一个一个的数据槽。这个数据槽可以保存一个基本类型(int、string、bool等)。创建引用时,这个槽里保存的是内存地址,或者说是指向引用对象的一个指针,引用没有拷贝操作,仅仅是将指针指向了原变量(参考数据结构)。创建普通赋值时,则是拷贝的基本类型。
而对象则与基本类型不同,它不能直接保存在数据槽中,而是将对象的“句柄”保存在了数据槽。这个句柄是指向对象特定实例的标识符。虽然句柄不是我们所能直观操作的类型,但它也属于基本类型。
当你获取一个包含对象句柄的变量,并将其分配给另一个变量时,另一个变量获取的是这个对象的句柄。(注意,不是引用!不是引用!不是引用!!)。通过句柄,两个变量都可以修改同一个对象。但是,这两个变量并没有直接关系,它们是两个独立的变量,其中一个变量修改为其他值时,并不会对另一个变量产生影响。只有该变量在修改对象内部的内容时,另一个变量因为持有相同的句柄,所以它的对象内容也会相应地发生改变。

php官方手册中关于对象和引用的解释。

引用赋值

使用=&进行引用赋值。

php手册的例子:

// php 版本5.6.9 $a = 3; $b = &$a; // $b 是 $a 的引用 print "$a\n"; // 输出 3 print "$b\n"; // 输出 3 $a = 4; // 修改 $a print "$a\n"; // 输出 4 print "$b\n"; // 也输出 4,因为 $b 是 $a 的引用,因此也被改变
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26148.html

    标签: php赋值
    分享给朋友:
    返回列表

    上一篇:PHP $

    下一篇:rewrite php

    “php 赋值php 数组赋值” 的相关文章

    解锁全球互联新高度:中国电信CN2GIA助力企业走向世界舞台

    在这个全球化和数字化交织的时代,中国电信CN2GIA凭借其卓越的网络性能和全球化布局,为企业和开发者打造了一条畅通无阻的数字高速公路。本文将带您深入了解CN2GIA的核心优势,以及它如何助力企业在全球化竞争中脱颖而出。在数字化转型的浪潮中,企业对网络的需求早已超越了简单的连接。他们需要的是稳定、高速...

    如何在VPS上轻松部署和管理Telegram机器人 | 详细指南

    1.1 创建Telegram机器人 在Telegram上创建一个机器人非常简单。我们只需要与@BotFather进行对话。@BotFather是Telegram官方提供的机器人管理工具,专门用于创建和管理机器人。通过发送/newbot命令,我们可以开始创建自己的机器人。@BotFather会引导我们...

    Atlantic VPS:高性能、灵活性与安全性的理想选择

    什么是Atlantic VPS? Atlantic VPS由Atlantic.net提供,这是一家在VPS托管服务领域中的资深者,已经经营了近29年。创建之初,Atlantic.net就定位于高性能和灵活性,以满足企业和开发者日益增长的需求。他们的目标是提供一种可靠的解决方案,让用户在自己的业务上更...

    HudsonValleyHost主机服务测评:性价比与稳定性的完美结合

    HudsonValleyHost是一家成立于2014年的国外老牌主机商,已经在行业内稳扎稳打,逐渐树立了自己的品牌形象。这家公司最初的目标是为用户提供高性价比的主机服务,其中以其纽约的KVM VPS服务备受青睐。在我接触的众多主机服务商中,HudsonValleyHost的存在让我感受到了一种稳定与...

    搬瓦工:新手必备的VPS主机服务与瓦工实践经验分享

    1. 搬瓦工的概述 你好,今天我们来聊聊“搬瓦工”。这个名字可能对很多人来说有些陌生,但实际上它是一个由加拿大IT7 Networks公司推出的VPS主机品牌。简单来说,搬瓦工为用户提供了一种虚拟的服务器租赁服务,尤其适合那些想要搭建网站或学习Linux的新手。最吸引人的是,它的性价比非常高,价格也...

    RackNerd评测:高性价比VPS服务体验与优缺点分析

    谈到VPS主机服务,RackNerd无疑是近年来备受关注的一个名字。成立于2019年的RackNerd,以其高性价比和出色的客户服务,迅速在行业内站稳了脚跟。无论你是个人网站的博主,还是小型企业的运营者,RackNerd都能为你提供一个合适的解决方案。 RackNerd的主要数据中心遍布北美和欧洲,...