PHP变量';懒拷贝';

PHP变量';懒拷贝';,php,session,variables,reference,session-variables,Php,Session,Variables,Reference,Session Variables,我正在阅读关于php变量的文章,在这两个问题中: 有人提到 当您将一个变量转换为另一个变量时,PHP会将对第一个变量的引用复制到第二个变量中。所以你的新变量,实际上是到现在为止第一个变量的引用。尚未复制该值。但是如果您试图更改这些变量中的任何一个,PHP将复制该值,然后更改该变量 这是否也适用于会话变量?我在堆栈溢出的某个地方读到会话变量存储在磁盘中。因此,在对会话变量进行任何更改之前,会话变量将保留引用?反之亦然吗?i、 e $var=$\u会话[“var”]或$\u会话[“var”]

我正在阅读关于php变量的文章,在这两个问题中:

有人提到

当您将一个变量转换为另一个变量时,PHP会将对第一个变量的引用复制到第二个变量中。所以你的新变量,实际上是到现在为止第一个变量的引用。尚未复制该值。但是如果您试图更改这些变量中的任何一个,PHP将复制该值,然后更改该变量

这是否也适用于会话变量?我在堆栈溢出的某个地方读到会话变量存储在磁盘中。因此,在对会话变量进行任何更改之前,会话变量将保留引用?反之亦然吗?i、 e

$var=$\u会话[“var”]
$\u会话[“var”]=$var
在这两种情况下都将存储引用

编辑:


另外,如果我在构造函数中分配一个类属性(
$this->var=$var
),它还会保存引用吗

它的工作原理很像Java,它有一个更好的解释,这是我能找到的关于PHP的任何东西:这里有一篇备受尊敬的博客文章,旨在解释专门针对PHP的内容:不完全是我想问的问题,但有趣的是,我学到了一些新的东西。就$u SESSION vars而言,在执行过程中,它们被视为正常变量。唯一特别的一点是,当您启动一个会话时,它会从磁盘预加载,当请求完成时,它会保存到磁盘上(可能,php稍后会根据您使用的SAPI进行保存)。它的工作原理与Java非常相似,对于PHP,我能找到一个更好的解释:这是一篇备受尊敬的博客文章,旨在解释PHP:这不是我想问的,而是一个有趣的问题,我学到了一些新的东西。就$u会话变量而言,它们在执行过程中被视为与普通变量相同。唯一特别的一点是,当您启动会话时,它将从磁盘预加载,当请求完成时,它将保存到磁盘(可能,php稍后会根据您使用的SAPI进行此操作)。