PHP笔记3、内存原理、常量

内存原理(形象理解)

1、内存结构

1、栈区

保存的是变量名(术语称之为引用)

特点:对于CPU来说,读写速度是最快的

2、数据段

存储的是简单数据,例如:整形、浮点型、布尔值等

3、堆区

存储复杂的数据,数组、对象等

4、代码段

存储的是源代码对应的机器指令(人能看懂但计算机看不懂,必须经过转换)

5、输出缓存

只要遇到输出指令,例如echo、print、print_r、var_dump,这些指令都会将所要输出的数据放在输出缓存中。

2、php的执行过程

1、编译阶段

进行语法检查、词法检查、代码优化。

编译通过之后将源代码

编译错误的提示信息如下:

2、执行阶段 

如果编译通过后,会将源代码对应的机器指令,保存在代码段,再开始执行代码段中的机器指令

3、php嵌入到HTML

当php功能模块在处理一个php文件时,它只关心php代码(使用php标签包含的代码)。对于非php标签,它会原样输出。

js、html、CSS对于php来说都是字符串

 举例:

<?php
	echo '<script>alart(1)</script>';
?>

 解读完后为:

<script>alart(1)</script>

运行结果:弹出窗口1

4、php中变量的传值方式

1、赋值传值

使用一个变量a为另一个变量b赋值时,传递的是变量a的值

2、引用传值

使用一个变量a为另一个变量b赋值时,传递的是变量a的地址

注意:js中不允许人为的更改传值方式,但是php中可以使用地址符'&',来将赋值传值更改为引用传值。

 举例:

<?php
	$v1=10;
	$v2=&$v1;
	$v2=20;
	echo $v2;
?>

 执行$v2=&$v1;在栈区开辟一个空间存储变量$v2,由于在赋值时发现$v1前有个&符号,此时会将$v1的内存物理地址赋值给栈区中的$v2,即两个变量共用一个物理地址,改动任意一个变量的值,另一个也跟着改变。

常量

1、概念

常量是一种特殊的变量,也是用于存储数据。常量一旦定义就不允许修改其值,常量本身也不允许删除。

2、定义

常量一旦定义就不允许修改

常量的值只能是基本数据类型(标量数据类型)

常量默认区分大小写,一般常量在命名时,我们会使用全大写的形式

语法:

1、define(‘常量名,值’);

2、const 常量名=值;

3、define vs const

define语法可以再分支结构中定义常量,const不行

define定义的常量可以自定义是否区分大小写

 define第三个参数设置为true,则不区分大小写

	define('PI',3.141,true);
	echo pI;

 运行结果:

3、常量的判断及获取所有的常量

1、判断

defined();

	define('PI',3.141);
	$result=defined('PI');
	var_dump($result);

运行结果: 

补充:var_dump() 

var_dump() 函数用于输出变量的相关信息。

var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

2、获取所有常量

get_defined_constants();

	$result=get_defined_constants();
	echo'<pre>';
	print_r($result);

运行结果: 

4、魔术常量

php中又定义了一组魔术常量

_ _ FILE _ _                 :用于获取当前文件完整路径及文件名

 

_ _ DIR _ _                  :用于获取当前文件的路径

_ _ LINE _ _                :用于获取当前行号

_ _ FUNCTION_ _      :用于获取当前当前函数的函数名

_ _ METHOD_ _         :用于获取当前方法的方法名

_ _ CLASS_ _             :用于获取当前类的类名

_ _ NAMEPACE_ _     :用于获取当前空间的空间名

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值