php | |||
标题 | 副标题 | 解释 | 格式 |
变量 | //引用变量(共用一个内存地址) $var = 20; $var2 = &$var; $var = 30; echo $var2; | ||
$int = pow(2,3); $float = pow(2.1,3); var_dump($int); echo '<br/>'; var_dump($float); | |||
常量 | 自定义常量 | (1)自定义常量 1.常量:程序中不可改变的量叫常量,值的标识符 常量一旦定义不可以更改 | |
常量的声明 | 2.常量的声明: a.define('常量名称','值'); b.const 常量名称='值'; | ||
常量的输出 | 3.常量的输出 b.echo constant('常量名称'); | ||
常量的名称规范 | 4.常量的名称规范 a.常量尽量大写 b.常量不包含$ c.常量都是标量类型 说明:所有的常量都是全局变量 | ||
defined() 判断常量是否存在 | 5. defined() 判断常量是否存在 (2)系统常量 PHP_INX_MAX 整数最大值 PHP_VERSION PHP版本 PHP_OS 操作系统 | ||
魔术常量 | (3)魔术常量 __Line__:获得当前的行号 | ||
数据类型转换 | PHP属于'弱'语言,数据类型会根 据运行环境自动转换数据类型 | ||
settype | 是设置数据类型 | 格式: bool settype(mixed &$var,string
$type) 如果成功返回true,否则失败 // $int = 20; $float = 2.56; $bool = true; $str ='hello'; var_dump($str); echo gettype($str); | |
gettype | 获取数据类型 | 格式: string gettype(mixed
&$var) // settype($int,'boolean'); echo gettype($int);//获得变量数据类型 echo '<br/>'; echo var_dump($int); | |
自动转换(隐式转换) | (1)自动转换(隐式转换) 转换成数值类型 a.合法数字字符串,除了.,e,E , 并且不超出整数的最大范围自动转换成整型, 其他转换成浮点型 b.不合法的数字字符串,如果以数字开头后面 不合法转换成数值如果以不合法的数字开头 转换成0 c.空字符串 转换成0 d.null转成0 e.布尔值 true转换成1,false转换成0 转换成字符类型 |
例如: $a = '20.3'; echo 8 + $a;//28.3 $a = '12ereer'; echo 8 + $a;//20 $a = 'a13'; echo 8 + $a;//8 $a = '2.5.63'; echo 8 + $a;//10.5 $a = ''; echo 8 +$a;//8 $a = null; echo 8 +$a;//8 $a = true; echo 8 +$a;//9 $a = 'true'; echo 8 +$a;//8 转换成字符类型 a.数值类型转换成字符类型就是数值本身 b.布尔类型转换成字符类型 true转成1 false空字符串 c.null 转换 空字符串 d.数组 转成 Array e.资源转成 Resource id #数字 例如: $a = '2.56'; echo $a;//2.56 $a = '20'; echo $a;//20 $a = null; echo $a;//空字符串 $a = 'null'; echo $a;//null $a = true; echo $a;//1 $a = 'true'; echo $a;//true 转换成布尔类型 只要下面情况转成false如下: a.布尔值false b.空字符串 c.null d.整数0,浮点数0.0,字符串'0',"0" e.没成员的数组array()(空数组) 除此之外都转换成true | |
强制转换(显式转换) | a.数值转换为字符就是其数值本身 b.布尔值转为字符 true 转换 1,false 空字符串 c.NULL转为空字符串 d.数组转换为 Array字符串 e.资源转换为 Resource id #数字 字符串 自动转换布尔 以下情况是转换为false: a.布尔值得 false b.空字符串 c.整型 0,浮动型 0.0,数值字符串 '0' "0" d.NULL e.空数组 array() 除上面的情况其他都转为true; | $int = 20; $float = 2.56; $bool = true; $str ='hello'; //转换成整型 var_dump((int)$float); echo '<br/>'; var_dump((integer)$float); echo '<br/>'; var_dump($float); echo '<br/>'; //转换成浮点 var_dump((float)$bool); echo '<br/>'; var_dump((double)$bool); echo '<br/>'; var_dump((real)$bool); echo '<br/>'; //转换成布尔类型 var_dump((bool)$int); echo '<br/>'; var_dump((boolean)$int); echo '<br/>'; //转换成字符类型 var_dump((string)$int); echo '<br/>'; var_dump((string)$bool); echo '<br/>'; //转换成数组 var_dump((array)$int); //转换成对象 echo '<br/>'; var_dump((object)$int); echo '<br/>'; /* $int = (float)$int;//临时转换但将转换结果又赋给原值 var_dump($int); */ | |
临时转换(变量临时转换成,变量本身没换) | a.临时转换(变量临时转换成,变量本身没换) (int)$var|(integer)$var转换成整型 (float)$var|(double)$var|(real)$var 转换成浮点型 (bool)$var|(boolean)$var转成布尔类型 (string)$var 转成字符类型 (array)$var 转成数组 (object)$var 转成对象 | ||
永久转换(变量本身换了) | b.永久转换(变量本身换了) “integer” (或为“int”,从 PHP 4.2.0 起) “float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用) "string" "array" "object" “null” (从 PHP 4.2.0 起) 返回值:如果函数执行成功返回true,执行失败返回false | ||
数据类型8个主要类型和4个伪类型 | |||
标量数据类型 | (存储单一信息) | ||
a.整型(Integer Int) | |||
b.浮点型(Float Double) | |||
c.字符类型(String) | |||
(1)字符类型必须用定界符括起来 | |||
(2)定界符<<< | |||
a.单引号(php中推荐使用单引号) | 单引号不解析变量而双引号解析变量 | ||
b.双引号 | 双引号能解析所有转义字符而单引号 只能解析 \\ \' | ||
c.HereDOC | 说明:用在大段文档中,比如XHTML,CSS,JS 等大段代码使用。 能解析变量和转义字符 结束定界符名称放到行首 | $变量名称=<<<定界符名称开始 .... 定界符名称结束; | |
d.NowDOC | 说明:用在大段文档中,比如XHTML,CSS,JS 等大段代码使用。 不能解析变量和转义字符 结束定界符名称放到行首 | $变量名称=<<<'定界符名称开始' .... 定界符名称结束; | |
转义字符 | (只能在html源码中看到) \\ 反斜杠 \' 单引号 \" 双引号 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 | ||
双引号和单引号使用 | (5)双引号和单引号的HTML实体和转义字符使用: 必须用HTML实体实现 (W3C组织规定在浏览器中的特殊符号必须HTML实体) (2)双引号和单引号在浏览器的源码中实现php中用 转义字符 | ||
大括号 | 在双引号中的变量,PHP能解析, 但PHP引擎会尽可能多的取合法字 符串作为变量名称,如果想告诉PHP 引擎到此位置,可以用大括号将变量 名称括起来 编号从0开始 当编号的位数大于字符串总长度,用一个空格填补 | ||
d.布尔类型 (Boolean Bool) | |||
复合数据类型 | (存储多个信息) | ||
a.数组 (Array) | |||
b.对象 (Object) | |||
特殊数据类型 | a.资源(Resource) | ||
a.资源(Resource) | 操作磁盘或网络中的文件, 不能声明资源,必须用特殊的函数去实现 例如:打开文件/目录函数,GD函数等 | ||
b.NULL null | NULL,null (1)声明变量但未赋值 (2)声明变量赋 NULL,null值 (3)unset()函数删除变量中的值 | ||
4个伪类型 | |||
混合类型(mixed) | 所有类型都可以,mixed 说明一个参数可以接受多种不同的 (但不一定是所有的)类型 | string gettype(mixed
$var); | |
数值类型(number) | 整型和浮点型叫数值类型 | 例如: pow(2,3);
2的三次幂8 pow(2.1,3);9.261 number pow ( number $base , number $exp ) | |
void类型 | 说明: 当void在返回值上,代表返回值空 当void在参数上,代表没有参数 | void echo ( string $arg1 [, string $... ]
) | |
callback类型 | 将函数作为另一个函数的参数使用 | //方法二:callback类型:
将strtolower函数作为另一个函数array_map的参数使用 echo '<pre>'; print_r($arr3); echo '</pre>'; | |
字符串 | mixed strpos(string $str, mixed
$var) | ||
常用 | var_dump | 打印变量的相关信息
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。 | var_dump(变量,变量); |
print_r | print_r —
打印关于变量的易于理解的信息。 print_r()
显示关于一个变量的易于理解的信息。如果给出的是 string 、 integer 或 float ,将打印变量值本身。如果给出的是 array
,将会按照一定格式显示键和元素。 object 与数组类似。 | ||
strlen | 字符串总长度 | echo
strlen($var);//字符串长度 | |
unset | 函数,表示清空变量的某一个值 | ||
ord | 返回字符的 ASCII 码值
(数字) | /* *判断变量 $var ='tom'; *首字母是否是小写 * ord($var{0})>=97 并且 ord($var{0})<=122 */ $var = 'tom'; $str = ord($var{0});//截取第一个首字母并且得ASCII值 //echo $str; if($str>=97 && $str<=122){ echo '首字母是小写 '; }else{ echo '首字母不是小写 '; } | |
isset() | 检测变量是否设置,并且不是 NULL 。 如果已经使用 unset()
释放了一个变量之后,它将不再是 isset() 。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE
。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL
常数。 | ||
empty() | 检查一个变量是否为空, 如果 var
是非空或非零的值,则 empty() 返回 FALSE 。换句话说,""、0、"0"、 NULL 、 FALSE 、array()、var
$var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE 。 除了当变量没有置值时不产生警告之外, empty()
是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。 | ||
运算符 | 程序执行的代码运算,并且有一个以上操作数参加运算表达式由运算符和操作数组成 | ||
运算符的分类 | a.运算符的分类 b.按参与运算的操作数的个数分 | ||
算数运算符 | -(负号),+(正号), +(加) -(减) *(乘) /(除) %(取模,求余数) 递增(自增++),递减(自减--) |
说明: (1)结果都是数值类型 (2)算术运算符运算前,将操作数转换为数值类型 (3)余数运算之前,要将操作数转换为整数,也就 是求整数的余数 (4)余数运算的符号与被除数一致 (5) 可以用fmod函数实现 求浮动数的余数 | |
余数运算的符号与被除数一致 | echo 8.5 % 3.5,'<br/>';//8%3=2 echo -8.5 % 3.5,'<br/>';//-2 echo -8.5 % -3.5,'<br/>';//-2 echo 8.5 % -3.5,'<br/>';//2 echo 3 % 11,'<br/>';//3 echo 8.5 % 11,'<br/>';//8 | ||
fmod | 可以用fmod函数实现求浮动数的余数,否则自动转换为整数 | echo
fmod(8.5,3.5),'<br/>';//8.5%3.5=1.5 echo fmod(-8.5,3.5),'<br/>';// echo fmod(-8.5,-3.5),'<br/>'; echo fmod(8.5,-3.5),'<br/>'; | |
++(自增) --(自减) | 前缀形式:先变量自身加1或减1,后使用 后缀形式:先使用,后变量自身加1或减1 说明: (1)数值类型支持自增自减 (2)布尔不支持自增自减 (3)null支持自增不支持自减 (4)字符串支持自增不支持自减 | $a = 5.5; $b = 7; $c = 6; $d =3; echo ++$a,'<br/>';//6.5 echo $b++,'<br/>';//7 echo $b,'<br/>';//8 echo $d--,'<br/>';//3 echo $d,'<br/>';//2 //判断自增自减 $i = 5; $j = 9; $k; ++$i; $k= $j++; $j++; echo $i,$j,$k,'<br/>';//6 11 9 echo '<hr/>'; // $i = '12'; $j = 5; echo '<br/>'; echo $i - $j;//7 echo '<br/>'; echo $i * $j;//60 echo '<br/>'; echo $i / $j;//2.4 echo '<br/>'; echo $i % $j; //2 echo '<br/>'; echo 9% 2.9;//1 echo '<br/>'; echo -8.5%3.5; echo '<br/>';//-2 echo -8.5%-3.5;//-2 echo '<br/>'; echo 2%11;//2 echo '<br/>'; echo 5%11;//5 echo '<br/>'; echo fmod(8.5,3.5);//1.5 echo '<br/>'; echo fmod(-8.5,3.5);//-1.5 echo '<br/>'; echo fmod(-8.5,-3.5);//-1.5 *$i='8.9.3a'; *$j = 2; * echo $i+$j; * echo $i-$j; * echo $i*$j; * echo $i/$j; * echo $i%$j; * echo -$i%$j; * echo -$i%-$j; */ echo '<br/>'; $i='8.9.3a'; $j = 2; echo $i+$j;//10.9 echo '<br/>'; echo $i-$j;//6.9 echo '<br/>'; echo $i*$j;//17.8 echo '<br/>'; echo $i/$j;//4.45 echo '<br/>'; echo $i%$j;//0 echo -$i%$j;//0 echo -$i%$j;//0 echo -$i%-$j;//0 echo '<hr/>'; //1.数值类型支持自增自减 $a =5.5; $b = 7; echo ++$a;//6 echo '<br/>'; echo $b++;//7 echo $b;//8 echo '<br/>'; $a =5.5; $b = 7; echo --$a;//4 echo '<br/>'; echo $b--;//7 echo $b;//6 $m =9; $k; echo '<br/>'; echo --$n;//2 echo '<br/>'; $k = $m--; echo $m,$k;//8,9 echo '<br/>'; $i =2; echo $i++ + ++$i;// 2 + 4=6 echo '<hr/>'; //2.布尔值是否支持自增自减--不支持 $var = true; echo ++$var;//1 echo '<br/>'; echo $var++;//1 echo '<br/>'; echo $var;//1 $var = true; echo '<br/>'; echo --$var;//1 echo '<br/>'; echo $var--;//1 echo '<br/>'; echo $var;//1 echo '<hr/>'; //3.null是否支持自增自减--支持自增不支持自减 $var = null; echo ++$var;//1 echo '<br/>'; echo $var++;//1 echo '<br/>'; echo $var;//2 echo '<br/>'; $var = null; echo --$var;//echo null 空字符 echo '<br/>'; echo $var--;//echo null 空字符 echo '<br/>'; echo $var;//echo null 空字符 echo '<hr/>'; //4.字符类型是否支持自增自减--支持自增不支持自减 echo ++$var; echo '<br/>'; $var ='z'; echo ++$var; echo '<br/>'; $var = 'a'; echo --$var; echo '<br/>'; /* ord():返回字符的 ASCII 码值 chr() :返回指定的字符 */ $var = 'a'; $var = ord($var); echo $var; $var = chr(98); echo $var; $var = '3b'; echo ++$var;//3c; echo '<br/>'; $var = '3z'; echo ++$var;//4a; echo '<br/>'; $var = '9z'; echo ++$var;//10a; echo '<br/>'; $var = 'z9'; echo ++$var;//aa0; echo '<br/>'; /* * $i = 4; * $j = 1; * echo $i++ + ++$j; * $i = 4; * $j = 1; * echo $i-- + --$j; * $a =2; * $b = 3; * $c; * $a++; * $c = ++$b; * echo $a,$b,$c; * $var = null; * echo $var++; * echo $var; * $var = 'null'; * echo $var++; * echo $var; * * $var ='z8'; * $var++; * $var++; * echo $var; */ echo '<hr/>'; $i = 4; $j = 1; echo $i++ + ++$j;//4 + 2 =6 echo '<br/>'; $i = 4; $j = 1; echo $i-- + --$j;//4+0=4 echo '<br/>'; $a =2; $b = 3; $c; $a++; $c = ++$b; echo $a,$b,$c;//3,4,4 echo '<br/>'; $var = null; echo $var++;//空字符串 echo $var;//1 echo '<br/>'; $var = 'null'; echo $var++;//null echo '<br/>'; echo $var;//nulm echo '<br/>'; $var ='z8'; $var++; $var++; echo $var;//aa0 | |
字符串支持自增不支持自减 | //字符串支持自增不支持自减 echo '<hr/>'; $var = 'a'; echo ++$var,'<br/>';//b echo $var++,'<br/>';//b echo $var,'<br/>';//c $var = 'a'; echo --$var,'<br/>';//a echo $var--,'<br/>';//a echo $var,'<br/>';//a | ||
字符运算符 | 将多个字符串连接的运算(.),字符运算符是对字符的运算,
连接两个字符串可以用连接运算符'.' | $var ='z'; echo ++$var,'<br/>';//aa $var ='Z'; echo ++$var,'<br/>';//AA $var ='3a'; echo ++$var,'<br/>';//3b $var ='3z'; echo ++$var,'<br/>';//4a $var ='9z'; echo ++$var,'<br/>';//10a $var ='z9'; echo ++$var,'<br/>';//aa0 | |
ord | 把字符串转换成数字输出 | echo
ord('a'),'<br/>';//97 | |
chr | 返回指定的字符 | echo
chr(98),'<br/>';//b | |
赋值运算符 | = += -= *= /= %= .= | 说明: (1)赋值运算符的结果与操作数有关 | |
= | 表示赋值 | $a = 5; //右结合(从右往左) echo $a + 7,'<br/>';//左结合(从左往右) | |
+= | 表示加多少等于变量 | $a = 5; $a += 7; //$a = $a +7; echo $a,'<br/>';//12 | |
-= | 表示减多少等于变量 | $a = 5; $a -= 7;// $a = $a -7; echo $a,'<br/>';//-2 | |
*= | 表示乘法多少等于变量 | $a = 5; $a *= 7; echo $a,'<br/>';//35 | |
/= | 表示除多少等于变量 | $a = 14; $a /= 7; // $a = $a / 7; echo $a,'<br/>';//2 | |
%= | 表示求余数 | $a = 16; $a %= 7; // $a = $a % 7; echo $a,'<br/>';//2 | |
.= | 点表示连接 | $var = 'hello'; $var2 ='world'; echo $var,$var2,'<br>'; echo '<br/>'; $str = $var.$var2; echo $str,'<br/>'; $var = '<span
style="color:red">mt_rand(1000,9999)</span>'; echo $var,'<br/>'; $var = '<span
style="color:red">'.mt_rand(1000,9999).'</span>'; echo $var,'<br/>'; //输出表格 $var = 'ddd'; $str =''; $str.='<ul>'; // $str= $str.'<ul>'; $str.='<li>'; $str.=$var; $str.='</li>'; $str.='<li>'; $str.=$var; $str.='</li>'; $str.='</ul>'; echo $str; | |
比较运算符 | > >= < <= ==
!=(不等于) <>(不等于) ===(全等于) !== (不全等于) |
说明: (1)比较运算符的结果是布尔值 (2)类型转换规范 a.两个字符串或null比较,null转换为 空字符串,按数字或单词比较 b.布尔或null 跟其他数据类型比较转换为布尔 true > false c.字符串或数字跟数字比较转换为数值类型 (3)什么时候用全等于和不全等于 PHP是弱语言,会根据运行环境自动转换 例如 '0',"0" 0,0.0会自动转换为布尔 值,为了忽略PHP产生的自动转换用全等于 和不全等于 | // 两个字符串或null比较
// null转换为 空字符串,按数字或单词比较 'a'>='a', //true 'a'>'a',//false 'a'<='a',//true 'a'<'a',//false 'b'>='a',// true 'be'>='bf',//false 按位比较 'Abcd'>='900',//true |