PHP变量的定义
存储在内存中的有名称的数据信息,其值在程序运行过程中会发生变化。
声明变量:$变量名称 = 值;
注意:
PHP数据类型
支持8种数据类型
1.标量数据类型:存储单一数据(信息)
字符型:string
布尔型:boolean,bool
整型:Integar,存储十、八、十六进制的整数,可带符号,-2147483647到2147483647
浮点型:float/double
2.复合类型
数组:Array
对象:Object
3.特殊类型
空值:null
资源:resource
伪类型:混合类型mixed,数字number,回调callback
字符类型的声明:
字符必须括在定界符范围内,其内容为任意的字符
定界符:单引号,双引号,hereDoc(<<<)
转义符:\n,\r,\t,\v,\\,\',\",\$
$string = <<<str
....
....
str;
str:是一个标识符,结束标识符必须单独另起一行且位于行首(前面不能出现空格)
注意:单双引号的区别?
1.双引号中的变量能被解析,输出的是变量的实际赋值;单引号中的变量只是普通字符串原样输出
2.双引号中的变量名会有贪婪性,用{}包含来解决
3.单引号只支持\'和\\两个转义符,双引号支持所有
\n,\r在windows中基本没什么区别,都可以当做回车换行符,
而在linux中,\n表示换到下一行,却不会回到行首;\r表示光标回到行首,但仍在本行。
数组的声明:
数组是一组数据的集合,每个数据称为一个元素,其包含索引(键名、下标)和键值两部分。
元素的索引由数字或字母组成。
索引数组:索引是纯数字
关联数组:索引是字母或混合
$arr =array(value1,value2);
$arr =array("key1"=>value1,"key2"=>value2);
$arr =array();
$arr[key] = value;
$arr[]= value;
注意:
1.如果数组中既有关联数组又有索引数组,那么索引数组从0开始编号。
2.如果数组中的索引数组的下标为正整数,那么第一次没有下标的成员的下标为该成员之前的最大下标加1
3.如果数组中的索引数组的下标为负数,那么第一次没有下标的成员的下标为0
4.相同下标的数组成员产生覆盖,不存在的下标成员产生添加
5.数组名称[]可以动态添加数组成员
null空值
NULL,null
1.没有赋任何值
2.被赋值成null
3.通过unset()函数处理过的变量
PHP数据类型转换
自动转换(隐式转换)
1.转成字符类型
数字直接转成数字字符串;布尔true转成"1",false转成"0";null转成空字符串"";
数组转成Array;资源转成Resource id#序列号
2.转换成布尔类型
数字0或0.0,空字符串""、'','0'、"0",null,没有成员的数组,通过空标记创建的SimpleXML对象
以上6种转成false;其余的转成true
3.转换成数值类型
如果字符串为合法数字字符串且不包含(.)或(e、E),转换成整形,否则转成浮点型
非法数字字符串转换成0;布尔true转成1,false转成0;null转换成0;
强制转换(显式转换)
(int)转成整型
(string)转成字符型
(boolean)转成布尔型
(float)转成浮点型
(array)转成数组
(object)转换成对象
(unset)转成NULL
永久转换
settype($str,$type)//返回值是布尔类型,成功为true,失败为false
数据类型的检测:
is_bool()
is_string()
is_float()
is_int()
is_null()
is_array()
is_object()
is_numeric()//检测变量是否为数字或数字组成的字符串
变量的声明以及使用:
1.直接赋值
$变量名 = 值;
2.变量间的赋值(间接赋值)
$变量名1 = 值;
$变量名2 = $变量名1;
3.引用赋值:用不同的变量名去访问同一个内容值。当改变其中一个变量的值时,另外的变量跟着改变。
$变量名1 = 值;
$变量名2 = &$变量名1;
作用域:
局部变量:在函数内部定义的变量,其作用域在所在的函数内
全局变量:被定义在所有函数外面的变量,其作用域是整个PHP文件,
但在用户自定义的函数中可不可以使用,如果想使用就必须用关键字global进行声明。
静态变量:能够在函数调用结束后仍然保留变量值,当再次回到其作用域时,继续使用原来的值。
使用静态变量就必须要使用关键字static进行声明。
可变变量:变量的名称由另外一个变量的值来确定,实现原理就是在变量前面多加一个$
自定义变量:
预定义变量:所有预定义变量都是数组
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIE
$_SESSION
$_SERVER
$_GLOBALS
$_ENV
PHP常量
define(name,value,false|true)
name:常量名(常规情况下,都为大写),名称前面没有$
value:常量值
第三个参数:指定是否严格区分大小写,默认为false严格区分;
常量的获取:
直接使用常量名获取值;
使用constant()函数来获取
defined(“常量名”):用来检测一个常量是否已经定义,返回值是布尔类型
注意:常量在定义和使用时,无需美元符号$;常量名称一般为大写字母;常量的数据类型只能是标量类型
自定义常量:
预定义常量:
系统常量:
PHP_VERSION
PHP_OS
E_ERROR
E_WARNING
E_NOTICE
TRUE
FALSE
NULL
$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言
$_SERVER['REMOTE_ADDR'] //当前用户 IP 。
$_SERVER['REMOTE_HOST'] //当前用户主机名
$_SERVER['REQUEST_URI'] //URL
$_SERVER['PHP_SELF']//正在执行脚本的文件名
$_SERVER['argv']//传递给该脚本的参数。
$_SERVER['QUERY_STRING'] //查询(query)的字符串。
魔术常量:
__FILE__ 返回当前文件的物理路径及名称
__LINE__ 返回行号
__CLASS__ 返回类名称
__METHOD__ 返回方法名
__FUNCTION__ 返回函数名
PHP运算符
算术运算符:+-*/%
比较运算符:<、>、<=、>=、==、===、!=、!==
逻辑运算符:&& and || or !
赋值运算符:=、+=、-=、/=、*=、%=
位运算符:&,|,^,~,<<,>>
三元运算符:?:
自增自减运算符:++、--
字符运算符:连接符(.)
错误抑制符:@
PHP语句
if语句:
switch语句:
while语句:
for语句
foreach语句
foreach($arr as $key=>$value){
}