php变量


php是一种动态网站开发的脚本语言,动态语言的特点是交互性,会有数据的传通,而php作为“中间人”,需要进行数据的传递,传递的前提就是php能自己存储数据(临时存储)

1、变量命名:

  • 前面必须由$符号;
  • 要严格区分大小写;
  • 名字由字母,下划线,数字组成;
  • 但只能由英文字母和下划线开头;
<?php
    $y=1;
    $y=2;
    echo $y; //输出变量$的值
?>
结果:2;//会覆盖

 

2、变量的销毁:

将所占用的内存释放出来

unset($s)

 

<?php
    $y=1;
    unset($y);//销毁变量
    echo $y; //输出变量$的值
?>
//结果:报错,因为变量已经被销毁了

3、可变变量:

如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值,在变量前面再多加一个$符号即可

<?php
    $y='test'; //定义了一个y,赋值为test
    $$y=2;//$test=2
    echo $test; //输出变量$的值
?>
//结果:2

4、预定义变量:

提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)

  • $_GET:获取所有表单以get方式提交的数据

  • $_POST:获取所有表单以post方式提交的数据

  • $_REQUEST:get和post提交的数据都会保存在这里

  • $GLOBALS:php中的所有的全局变量

  • $_SERVER:服务器信息

  • $_SESSION:session会话数据

  • $_COOKIE:cookie会话数据

  • $_ENV:环境信息

  • $_FILES:用户上传的文件信息

 

 

5、变量传值:

  • 将一个变量赋值给另一个变量

  • 两种方式:值传递,引用传递

  • 值传递:将变量保存的值复制一份,将新的值给另外一个变量保存(两个变量没有关系)   

       

  • 引用传递:将变量保存的值所在的内存地址,传递给另外一个变量,两个变量指向同一块内存空间(两个变量是同一个值,一个变另一个也会变)

  

<?php
    $a=20;
    $b=$a;     //值传递
    echo $b    //结果:20
    $c=&$a;    //引用传递:相当于给a取了个别名叫c,操作任何一个,另一个也会跟着变
    $c=1000;   //给c赋值为1000
    echo $a;   //结果:1000,因为c就是a,指示名字不同,给c改了数值,a也会变
?>

补:在内存中,通常有以下几个分区:

栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快

代码段:存储程序的内存部分(不执行)

数据段:存储普通数据(全局区和静态区)

堆区:存储复杂数据,大但是效率低

6、数据类型判断:

<?php
    $a=true;
    var_dump($a);//输出变量类型
    $a=1;
    var_dump($a);//输出变量类型
    var_dump(is_int($a))   //结果:true
?>
//结果:boolean   int  true

Gettype(变量名):获取类型,得到的是该类型对应的字符串
Settype(变量名,类型):设定数据类型,与强制转换不同
1、强制转换:是对数据值复制后,对复制的内容进行处理,不会改变本身的类型
2、Settype:会改变本身的类型

  

7、强制转换:

类型转换:在很多的条件下,需要指定的数据类型,需要外部数据(当前PHP取得的数据),转换成目标数据类型。

在PHP中有两种类型转换方式:

  1. 自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)
  2. 强制(手动)转换:认为根据需要的目标类型转换
  3. 强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer....其中NULL类型用到unset()

 

在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算术运算)

其他类型转布尔类型:true或者false,在PHP中比较少类型换变成false

其他类型转数值的说明

1、布尔true为1,false 为o;

2、字符串转教值有自己的规则。

  • 以字母开头的字符串,永远为O;
  • 以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点
<?php
	$a='yb';
	$b=(int) $a;//不会改变自身
	var_dump($b);
	var_dump($b);
?>
//结果:0  string

  

 

 

 

 

 

原文地址:https://www.cnblogs.com/eighty-five/p/13629921.html