分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP变量定义及工作原理

发布时间:2023-09-06 02:05责任编辑:郭大石关键词:PHP

1、变量定义:

通常学到的是,变量代表存储空间以及其中数据的一个“标识符”。

变量名 指向 变量值

更深入的说是 变量指向内存的一块区域

2、变量工作原理,通过画图分析法——内存空间

<?php
//php引用变量:不同变量名指向同一地址。
//定义一个变量a,此时内存开辟了一块区域,$a指向该区域。
$a = 100;
var_dump($a); ???//int 100
//定义变量b,将a变量的值赋值给b,此时该区域有两个变量($a和$b)指向。
$b = $a;
var_dump($b); ???//int 100
//修改$a变量的值,php变量具有Copy On Write的特性,所以会复制并重写a所指向的区域值,此时a和b分别指向不同区域。
$a = 10;
var_dump($a); ???//int 10
var_dump($b); ???//int 100

//------------------------------------------------------------------

$c = 100;
$d = &$c;
$c = 10;
var_dump($c); ???//int 10
var_dump($d); ???//int 10
//当引用指向时,php变量不在具有COW特性,且指向同一内存区域。

//* unset()只能消除变量的引用,不能删除其内存分配的空间

//------------------------------------------------------------------

/*
例题:
???写出如下程序的输出结果:
???<?php
???$data = [‘a‘,‘b‘,‘c‘];
???foreach($data as $key=>$val){
???????$val = &$data[$key];
???}
???问:最终$data的值是多少?
*/
???$data = [‘a‘,‘b‘,‘c‘];
???foreach($data as $key=>$val){
???????$val = &$data[$key];
???????print_r($data);
???}

/*
???1.$key = 0,
?????$val = ‘a‘,
?????$val = &$d[0] =>‘a‘
?????$data = [‘a‘,‘b‘,‘c‘];

???2.$key = 1,
?????$val = ‘b‘, =>$d[0]
?????$val = &$d[1] =>‘b‘
?????$data = [‘b‘,‘b‘,‘c‘];

???1.$key = 2,
?????$val = ‘c‘, =>$d[1]
?????$val = &$d[2]=>‘c‘
?????$data = [‘b‘,‘c‘,‘c‘];
*/

以上来自代码 https://www.cnblogs.com/luma/p/7465388.html#undefined

PHP变量定义及工作原理

原文地址:https://www.cnblogs.com/513-/p/9349628.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved