1、PHP的8种原始数据类型:
4种标量:boolean string integer float/double
两种复合类型:array object
两种特殊类型:resource null
2、在PHP中不是只有FALSE值为假,boolean在某些特殊情况下也为FALSE,这些特殊情况为0 0.0 空字符串 没有声明赋值的数组等
3、单引号和双引号的区别:在PHP中,双引号中的变量会自动被替代,而单引号中按普通字符串输出
4、强制转换时应注意:
转换成boolean
型时,null、0和未赋值的变量或空数组会被转换为false,其他的为真
;
转换成整型时,布尔型的false转换为0,true转换为1,
浮点型的
小数部分被舍去,
字符型如果以数字开头就截取到非数字位,否则输
出0。
5、settype()函数
bool settype ( mixed var, string type )
参数var为指定的变量,参数type为指定的类型,参数type有7个可
选值,即boolean、float、integer、array、null、object和string
。
如果转换成功则返回true,否则返回false。TIPS:settype会改变变量本身的类型,而强制转换类型不会
6、检测数据类型的函数有:
is_bool() is_float()\is_double() is_string() is_integer()
is_null() is_array() is_object() is_numeric()(检查变量是否为数字或者为数字组成的字符串)
7、函数is_null() empty() isset()的区别:
$a=""; $b="0"; $c=null; $d="null";
is_null()只有当变量为null类型的时候该函数才判断其变量为空,返回结果为真;即只有is_null($c)==true;(只判断变量是否定义不考虑其变量的值)
empty()当变量为空,为0,为null是该函数返回真,否则返回假;即只有empty($d)==false;(除了判断变量是否定义还判断变量的值是否是空 或者 0)
isset()只有当变量为null类型是该函数返回假表示没有定义,与is_null()相反,若变量不是null则都返回真;即只有isset($c)==false;(只判断变量是否定义不考虑其变量的值)
8、定义PHP常量 define(string constant_name,mixed value,case_sensitive=true)
constant_name:常量名称,以英文字母,下划线,数字组成,但是数字不能是首字符
value:变量的值;
case_sensitive=true:表示不敏感,定义的该常量不区分大小写,一般默认区分大小写
constant(常量名)返回常量的值,检查常量是否存在,若不存在则返回NULL;
eg:
define("DE1", "定义的第一个常量");
define("DE2", "定义的第二个常量",true);
echo DE1."<br/>".DE2."<br/>".de2;
9、预定义常量
见TEST newfile
10、变量的声明及使用
PHP中变量名的要求:以$和标识符表示,变量区分大小写
值传递和地址传递的区别
值传递是直接将变量的值复制过来重新申请一个内存存放,更改复制过来的变量的值不影响原来的变量;
地址传递,引用赋值是再给这个内存起一个名字,更改新的变量值也更改了原始变量的值;
eg:
$var="111";
$var2=$var;
echo "\$var=".$var."<br/>"."\$var2=".$var2."<br/>";
$var2="222";
echo "\$var=".$var."<br/>"."\$var2=".$var2."<br/>";
$var3=&$var;
echo "\$var=".$var." "."\$var3=".$var3."<br/>";
$var3="333";
echo "\$var=".$var." "."\$var3=".$var3."<br/>";
11、变量的作用域
局部变量;在函数内部定义的变量,其作用域在所在函数
全局变量:定义在函数外部的变量,整个PHP文件可用但是在函数内部不可用,如果需要使用需要定义全局变量用global声明
静态变量:能在函数调用结束后依旧保留变量的值,再次回到作用域时又可以继续使用原来的值;而一般变量在函数调用结束后,数据值被清楚,释放内存。定义静态变量需要在变量名称前加上STATIC
例如:
function sta(){
static $sta1="0";
$sta2="0";
$sta1++;
$sta2++;
echo "静态变量的值为:".$sta1." "."一般变量的值为:".$sta2."<br/>";
}
echo "第一次调用sta函数:";
echo sta()."<br/>"."第二次调用sta函数:";
echo sta();
4种标量:boolean string integer float/double
两种复合类型:array object
两种特殊类型:resource null
2、在PHP中不是只有FALSE值为假,boolean在某些特殊情况下也为FALSE,这些特殊情况为0 0.0 空字符串 没有声明赋值的数组等
3、单引号和双引号的区别:在PHP中,双引号中的变量会自动被替代,而单引号中按普通字符串输出
4、强制转换时应注意:
转换成boolean
型时,null、0和未赋值的变量或空数组会被转换为false,其他的为真
;
转换成整型时,布尔型的false转换为0,true转换为1,
浮点型的
小数部分被舍去,
字符型如果以数字开头就截取到非数字位,否则输
出0。
5、settype()函数
bool settype ( mixed var, string type )
参数var为指定的变量,参数type为指定的类型,参数type有7个可
选值,即boolean、float、integer、array、null、object和string
。
如果转换成功则返回true,否则返回false。TIPS:settype会改变变量本身的类型,而强制转换类型不会
6、检测数据类型的函数有:
is_bool() is_float()\is_double() is_string() is_integer()
is_null() is_array() is_object() is_numeric()(检查变量是否为数字或者为数字组成的字符串)
7、函数is_null() empty() isset()的区别:
$a=""; $b="0"; $c=null; $d="null";
is_null()只有当变量为null类型的时候该函数才判断其变量为空,返回结果为真;即只有is_null($c)==true;(只判断变量是否定义不考虑其变量的值)
empty()当变量为空,为0,为null是该函数返回真,否则返回假;即只有empty($d)==false;(除了判断变量是否定义还判断变量的值是否是空 或者 0)
isset()只有当变量为null类型是该函数返回假表示没有定义,与is_null()相反,若变量不是null则都返回真;即只有isset($c)==false;(只判断变量是否定义不考虑其变量的值)
8、定义PHP常量 define(string constant_name,mixed value,case_sensitive=true)
constant_name:常量名称,以英文字母,下划线,数字组成,但是数字不能是首字符
value:变量的值;
case_sensitive=true:表示不敏感,定义的该常量不区分大小写,一般默认区分大小写
constant(常量名)返回常量的值,检查常量是否存在,若不存在则返回NULL;
eg:
define("DE1", "定义的第一个常量");
define("DE2", "定义的第二个常量",true);
echo DE1."<br/>".DE2."<br/>".de2;
9、预定义常量
见TEST newfile
10、变量的声明及使用
PHP中变量名的要求:以$和标识符表示,变量区分大小写
值传递和地址传递的区别
值传递是直接将变量的值复制过来重新申请一个内存存放,更改复制过来的变量的值不影响原来的变量;
地址传递,引用赋值是再给这个内存起一个名字,更改新的变量值也更改了原始变量的值;
eg:
$var="111";
$var2=$var;
echo "\$var=".$var."<br/>"."\$var2=".$var2."<br/>";
$var2="222";
echo "\$var=".$var."<br/>"."\$var2=".$var2."<br/>";
$var3=&$var;
echo "\$var=".$var." "."\$var3=".$var3."<br/>";
$var3="333";
echo "\$var=".$var." "."\$var3=".$var3."<br/>";
11、变量的作用域
局部变量;在函数内部定义的变量,其作用域在所在函数
全局变量:定义在函数外部的变量,整个PHP文件可用但是在函数内部不可用,如果需要使用需要定义全局变量用global声明
静态变量:能在函数调用结束后依旧保留变量的值,再次回到作用域时又可以继续使用原来的值;而一般变量在函数调用结束后,数据值被清楚,释放内存。定义静态变量需要在变量名称前加上STATIC
例如:
function sta(){
static $sta1="0";
$sta2="0";
$sta1++;
$sta2++;
echo "静态变量的值为:".$sta1." "."一般变量的值为:".$sta2."<br/>";
}
echo "第一次调用sta函数:";
echo sta()."<br/>"."第二次调用sta函数:";
echo sta();