- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
References in PHP are a means to access the same variable content by different names and they are not actual memory addresses. Instead, they are symbol table aliases. And, when an object is sent by argument, returned or assigned to another variable, the different variables are not aliases: they hold a copy of the identifier, which points to the same object.
最佳答案
让我们从您报价的最后一部分开始。
And, when an object is sent by argument, returned or assigned to another variable, the different variables are not aliases: they hold a copy of the identifier, which points to the same object.
A
创建一些对象.我们将使用 SPL 的
spl_object_id()
和
var_dump()
职能。
class A {}
$a = new A();
$b = $a;
var_dump($a) . PHP_EOL;
var_dump($b) . PHP_EOL;
// object(A)#1 (0) { Notice #1 - an identifier
// }
// object(A)#1 (0) { Notice #1 - an identifier
// }
echo spl_object_id($a) . PHP_EOL; // Outputs: 1 - an identifier
echo spl_object_id($b) . PHP_EOL; // Outputs: 1 - an identifier
$a
和
$b
持有标识符的副本,该副本指向同一个对象 (A)。
References in PHP are a means to access the same variable content by different names and they are not actual memory addresses. Instead, they are symbol table aliases.
$a = 12;
// Notice the & (ampersand)
$b = & $a; // $b = 12;
$b = 20; // $a = 20; now
20
使用
$a
和
$b
.好的!我们现在需要知道当我们为变量
赋值时会发生什么。因为你引用了不同的变量名实际上不是内存地址 .让我们深入研究一下。
$a = "hello";
xdebug_debug_zval()
的函数当
Xdebug
时可用已安装;它可以帮助您深入了解带有值的变量如何驻留在 zval 容器中。
$a = "hello";
xdebug_debug_zval('a');
a: (refcount=1, is_ref=0)='hello'
symbol | value
-------+------
a, b | 20
a
和
b
符号在这里是别名。这仅适用于标量类型。
$a = new A();
$b = $a;
symbol | value object | details
-------+--------- -------------+--------
a | object(A)#1 object(A)#1 | class A { ... }
b | object(A)#1
a
和
b
符号不是别名。它们持有指向同一个对象的标识符的副本。
关于php - PHP 编程语言中的 'identifier' 和 'reference' 概念有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61228494/
有人尝试过两者J编程语言形式 jsoftware 和 R语言。经过一番搜索后,我遇到了 incanter这是基于 Clojure 的。我想学习一种用于数据分析的统计语言。你更倾向哪个?为什么? 请考虑
有谁知道我在哪里可以找到 NesC 编程语言的基础和高级教程和代码示例。 最好的问候 最佳答案 在这里您可以找到许多示例和许多其他文档。 http://docs.tinyos.net 关于NesC 编
我断断续续地玩 MUD 游戏已经一年多了。我在网上搜索了最好的计算机语言来学习开发我自己的语言。到目前为止,我除了 C 什么都没有想出。C 是学习此应用程序的最佳语言,还是有更好的语言? 我知道 SM
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我对编码有点陌生,可能不会使用正确的术语,希望我说的有道理。 我创建了一个类模块来构建对象。我的类模块当前有一些变量(我打算在构建代码时添加一些方法)。 'CLASS MODULE NAMED cls
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
问题:这个代码示例有什么问题,缺少什么? 当前不正确的输出是: “”中有0个字 代码说明:编写一个程序,读取一行文本,并打印出该行文本中的字数。单词包含字母数字字符。提示:使用 fgets() 函数。
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
任何人都可以回答如何在 GO 中获取系统时间来帮助我。例如,在下面的代码中,我想知道第一次打印和第二次打印语句何时执行,它们之间的时间差是多少。 package main import "fmt" f
Pyret 是一门基于 JavaScript 的脚本语言,旨在成为编程教育的绝佳选择,同时探索脚本语言和函数式编程的融合。目前 Pyret 正处于积极设计和开发阶段,开发者可以自由使用或对其进行修改
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
在过去的几年里,我一直在做大量的 SIMD 编程,而且大部分时间我一直依靠编译器的内在函数(例如用于 SSE 编程的那些)或编程汇编来获得真正漂亮的东西。然而,到目前为止,我几乎找不到任何内置支持 S
当我尝试使用 watir-webdriver 步骤定义运行 Cucumber 场景时,出现以下错误: Failed to load 'yml' programming language for fil
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我想知道是否有一种编程语言可以编译为机器代码/二进制(不是字节码,然后由 VM 执行,在考虑打字时这是完全不同的),具有动态和/或弱类型,例如: 想想一种编译语言,其中: 变量不需要声明 可以在运行时
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我是一名优秀的程序员,十分优秀!