使用php编程,在项目中常见知识点
一. PHP基本数据类型
Boolean 布尔类型,Integer 整型,Float 浮点型,String 字符串,Array 数组,Object 对象,Resource 资源类型,NULL,Callback / Callable,
二. 魔术常量和方法
__LINE,__FILE, __DIR,__FUNCTION,__CLASS,__TRAIT,__METHOD,__NAMESPACE
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()
三. 超全局变量
$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV
四. global和$GLOBAL
在php程序的生命周期中,超全局变量$GLOBAL记录了程序中的全局变量,包含了全部变量的全局组合数组,变量的名字就是数组的键。但是PHP中全局变量在函数中使用时必须提前申明为全局,否则为函数内的局部变量。可以通过$GLOBALS或者global在函数中声明,但二者并不相同。看个例子:
// G_a
1 2 3 4 5 6 7 8 9 10
| function test() { $GLOBALS['var1'] = $GLOBALS['var2'] + $GLOBALS['var3']; } $var1 = 1; $var2 = 2; $var3 = 3; test(); var_dump( $var1 );
|
// G_b
1 2 3 4 5 6 7 8 9 10 11
| function test() { $GLOBALS['var2'] = & $GLOBALS['var1']; } $var1 = 1; $var2 = 2; $var3 = 3; test(); var_dump( $var2 );
|
// g_a
1 2 3 4 5 6 7 8 9 10 11 12
| function test() { global $var1, $var2, $var3; $var1 = $var2 + $var3; } $var1 = 1; $var2 = 2; $var3 = 3; test(); var_dump( $var1 );
|
// g_b
1 2 3 4 5 6 7 8 9 10 11 12
| function test() { global $var1, $var2, $var3; $var2 = & $var1; } $var1 = 1; $var2 = 2; $var3 = 3; test(); var_dump( $var2 );
|
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,而$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致。
五. empty和isset
1.isset
方法:
bool isset ( mixed $var [, mixed $… ] )
说明:
检测变量是否NULL,为NULL时返回FALSE,否则为TRUE,$var不可以是表达式
1 2 3
| var_dump( isset($val) );
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $var = 0; var_dump( isset($var) ); $var = 0.0; var_dump( isset($var) ); $var = '0'; var_dump( isset($var) ); $var = "0"; var_dump( isset($var) ); $var = ''; var_dump( isset($var) ); $var = FALSE; var_dump( isset($var) ); $var = NULL; var_dump( isset($var) ); $var = array(); var_dump( isset($var) ); $var; var_dump( isset($val) ); $var = 123; unset($var); var_dump( isset($val) );
|
如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 TRUE 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。
1 2 3 4
| $var1 = 10; $var2 = ''; $var3 = array(1,2); var_dump( isset($var1, $var2, $var3) );
|
2.empty
方法:
bool empty ( mixed $var )
说明:
检查一个变量是否为空,在更高版本下$var可以是表达式
1 2 3
| var_dump( empty($val) );
|
- 当$var存在时,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE,其中以下值或变量被认为是零或空
‘’, 0, 0.0, ‘0’, NULL, FALSE, array(), $var;
1 2 3 4 5 6 7 8 9 10 11
| var_dump( empty(0) ); var_dump( empty(0.0) ); var_dump( empty('0') ); var_dump( empty("0") ); var_dump( empty('') ); var_dump( empty(FALSE) ); var_dump( empty(NULL) ); var_dump( empty(array()) ); $var; var_dump( empty($val) );
|
ps: php中文手册