首頁 後端開發 php教程 PHP变量内存分配问题记录整理_php技巧

PHP变量内存分配问题记录整理_php技巧

May 17, 2016 am 08:52 AM
php變數 記憶體分配

今天碰到一个关于php变量内存分配的问题,记录一下。

如下这段代码:

复制代码 代码如下:

$a = array (
'str' => 1,
'child' => 2
);

$b = $a;
$b['child'] = $a;
$b['child']['str'] = 2;
echo $b['str'];
$b = null;
echo $a['str'];

会输出什么呢,结果是11,$b=$a的时候其实并没有新分配内存,ab是指向的同一个区域,$b['child']=$a时,$b会先copy一份原来$a的内容,然后再修改,也就是说这时候$b和$a指向了不同的区域,再修改$a或者$b的时候都不会互相影响了。

再看这段代码:
复制代码 代码如下:

class A
{
public $str = '';
public $child;
}

$a = new A();
$b = $a;
$a->str = 1;
$a->child = 2;
$b->child = $a;
$b->child->str = 2;
echo $b->str;
$b = null;
echo $a->str;

又会输出什么呢,结果是22,根据实际情况来判断,$b->child=$a的时候,并没有像数组那样,重新copy一份,ab以及a->child都是指向的同一片区域,这样改任何一个,其余几个都会被改掉。

可是PHP为啥要设计成这样呢。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP Notice: Undefined variable:解決方法 PHP Notice: Undefined variable:解決方法 Jun 25, 2023 pm 04:18 PM

PHP Notice: Undefined variable:解決方法

Java 函數中記憶體分配的最佳實踐是什麼? Java 函數中記憶體分配的最佳實踐是什麼? May 02, 2024 pm 10:33 PM

Java 函數中記憶體分配的最佳實踐是什麼?

golang函數的記憶體分配分析 golang函數的記憶體分配分析 Apr 29, 2024 pm 02:24 PM

golang函數的記憶體分配分析

深入探討Golang切片的記憶體分配與擴容策略 深入探討Golang切片的記憶體分配與擴容策略 Jan 24, 2024 am 10:46 AM

深入探討Golang切片的記憶體分配與擴容策略

C++ 函數的記憶體分配和銷毀中的陷阱和最佳實踐 C++ 函數的記憶體分配和銷毀中的陷阱和最佳實踐 Apr 23, 2024 am 09:36 AM

C++ 函數的記憶體分配和銷毀中的陷阱和最佳實踐

在Go語言中實現高效率的記憶體分配和垃圾回收 在Go語言中實現高效率的記憶體分配和垃圾回收 Sep 28, 2023 am 11:10 AM

在Go語言中實現高效率的記憶體分配和垃圾回收

C++ 函數記憶體分配的常見錯誤及其解決方法 C++ 函數記憶體分配的常見錯誤及其解決方法 Apr 22, 2024 pm 05:09 PM

C++ 函數記憶體分配的常見錯誤及其解決方法

分析Java中堆疊和堆疊的不同以及它們的應用情景 分析Java中堆疊和堆疊的不同以及它們的應用情景 Feb 24, 2024 pm 11:12 PM

分析Java中堆疊和堆疊的不同以及它們的應用情景

See all articles