PHP变量

概念

1) 什么是量

量其实就是 数据.

1) 什么是变量

变量就是 在一个脚本周期内,其值可以改变的量.

2) 什么叫做一个脚本周期

一个脚本周期就是 当apache将请求交给php模块解析开始,到 php模块解析完成为止,这个就是一个 脚本周期

 

 

变量的组成

1) 变量组成

$a = 100;

分2部分 $a 和 100

$a 是变量名

100 是变量的值

变量名 和变量值 之间是啥关系呢? 引用和被引用的关系

在内存中是 变量名 引用 变量值 ; 变量值 被 变量名所引用;

 

2) 内存组成

堆区:空间大,但是速度慢,一般存放数组、对象等复杂的数据类型!

栈区:空间小,但是速度快,一般存所占空间不变的数据,比如变量名,常量名、函数名、数组名!

代码区:就是存函数或对象的方法等代码

全局数据区:主要存放变量、常量、静态变量!

 

3) 深度剖析一下$a = 100;

① 在全局区的变量区 分配一块内存空间用户保存100这个值,同时这个内存空间有一个地址,这个地址举例为1000 1000

② 在栈区开辟一块内存空间,$a

$a用于保存 变量区的地址(1000 1000),同时变量名对变量区的数据有一个引用关系

 

4) 深度剖析一下echo $a

① 在栈区找到变量$a

② 根据$a存在的地址,找到变量区

③ 找到变量区的地址之后,就找到了对应的数值,然后输出出来

 

 

 

变量的基本语法:$

$是用于声明后边为一个变量. $其实并不属于变量名的一部分

 

 

 

变量的命名规则

变量命名遵循标识符的命名规则。标识符用来标识信息的名称。如变量名,常量名,函数名等

标识符的命名规则:

  • 由字母数字下划线等多个字符组成,以字母或者下划线开头。
  • 变量命名严格区分大小写
  • 不使用系统关键字
  • 建议命名使用英文单词,见名知意。

多个单词组成的变量:StudentName

驼峰命名法

  • 第一个单词首字母小写,其余单词的首字母大写(小驼峰)举例: studentName

  • 每个单词的首字母都大写(大驼峰),举例: StudentName

  • 使用下划线进行分割: 举例 student_name

 

类名一般使用 大驼峰. 函数一般使用 小驼峰 数据库一般使用 下划线

 

 

 

 

可变变量

PHP支持动态改变变量名。即可变变量的名称由变量的值组成

我们的变量名也是可以作为一个变量的,就叫做 可变变量!!!

以后还会接触 可变函数, 可变类等可变类型

 

变量的基本操作

1. 变量声明()

  • php不需要显示的声明变量(比如c语言中的int a;),变量的声明一般和赋值同时进行,也叫作变量的初始化!
  • 变量可以是任意的类型,而不需要指定具体的类型,或者说可以放置任意数据类型的值!
  • 虽然php变量不需要显示的声明,但并不代表可以直接使用一个完成没有初始化的变量!

  • 虽然php变量不需要指定类型,但不并代表该变量没有数据类型,变量的数据类型就是其保存的值的类型!我们是通过变量的值来确定变量的类型!

 

2. 删除变量()

删除操作是采用系统的函数 unset($变量名);

 

深度剖析一下 unset($a) 在内存中做了那些工作???

 

① 在栈区把$a这个变量移除

② 把栈区$a对 变量区的引用移除

 

全局区的变量区数据并不是由unset进行回收的,而是由php的核心解释器负责管理和回收的.

 

3. 变量的修改()

直接赋新值就可以!!!

4. 获取变量的值()

echo ,var_dump 来获取变量的值

 

 变量间的传值

将一个变量传递给另外一个变量

$a = 100;

$b = $a;

1. 值传递

$a = 100;

$b = $a; 这里 $b = $a是值传递;

值传递可以理解成为 复制 传递;

 

① 在全局区的变量区 重新开辟一块内存空间,它的地址是 1000 1001.但是内存的值还是原来变量的值 100.

② 在栈区重新开辟一块内存空间$b

③ 栈区的$b所存储的是 新开辟的变量区的空间地址1000 1001,同时$b对变量区有一个引用.

 

 

 

1. 引用传递

引用传递,就是将一个变量的内存空间地址赋值给另外一个变量!

 

问题: 我们如何获取到一个变量的内存空间地址.

我们使用 & 取地址符.

 

$a = 100;

$b = & $a;

 

① 在全局区的变量区通过地址找到这个变量

② 在栈区重新开辟一块内存空间$b

③ 在$b的栈区保存 找到的那个地址 1000 1000,同时$b对变量有一个引用关系

 

posted @ 2019-06-27 14:40  yyfgrd  阅读(143)  评论(0)    收藏  举报