超全局数组:
$_POST post传值
$_GET get传值,可以在浏览器的地址栏来直接传值
注意:post发送的内容只能用post来接收,而get发送的内容只能用get接收
$_REQUEST post与get模式都可以接收到
$_SERVER 获取全局的信息
$_SERVER['HTTP_REFERER']; //上级来源
$_SERVER['HTTP_ACCEPT_LANGUAGE']; //字符集
$_SERVER['HTTP_HOST']; //当前服务器的IP地址
$_SERVER['REMOTE_ADDR']; //哪台主机访问,没有获取IP记录的,只有它.
$_SERVER["SERVER_ADMIN"]; //管理员邮箱
预定义常量:(--就是可以直接使用的常量,直接echo可以输出--)
__FILE__:当前文件在服务器的什么地址上面;
__LINE__:对应的行号;
__FUNCTION__:当前函数名;
__CLASS__:当前的类名;
__METHOD__:当前的方法;
PHP_OS: 当前操作系统的版本;
PHP_VERSION: 当前的PHP的版本;
数据类型:有时候我们只需要获取数据的类型,这时我们就需要判断类型的函数
判断变量类型:
gettype();
$a=10;
echo gettype($a);
结果为integer(整型)注意:gettype();这个函数以后尽量少用;
因为:1、double,real 类型都是属于浮点类型的,将来都会被统一成float。
2、功能强大效率低下,花费的时间比较多。
is_type(); //系列的函数
/****************************************************************************************/
is_float()类型: 判断是不是浮点型
$b=3.2;
if(is_float($b)){
echo '真';
}else{
echo '假';
}
结果为:真
/****************************************************************************************/
is_int()类型:判断是不是整型$a=99;
if(is_int($a)){
echo '真........';
}else{
echo '假!!!!!!!!';
}
//结果是:真
/****************************************************************************************/
is_bool()类型: //是不是布尔型$a=false;
if(is_bool($a)){
echo '真........';
}else{
echo '假!!!!!!!!';
}
结果为:真......./****************************************************************************************/
is_string()类型: //是不是字符串$a='abc';
if(is_string($a)){
echo '真........';
}else{
echo '假!!!!!!!!';
}
结果为真........../****************************************************************************************/
is_array()类型: //是不是数组
<?php
$a=array(1,2,3,4,5,6,);
if(is_array($a)){
echo '真........';
}else{
echo '假!!!!!!!!';
}
结果为真.........
/****************************************************************************************/
is_null()类型: //是不是空$a=null;
if(is_null($a)){
echo '真........';
}else{
echo '假!!!!!!!!';
}
结果为:真
/****************************************************************************************/
is_scalar()类型: //是不是标量:标量为布尔,字符串,浮点,字符串四种
$a=true; //注意这是布尔型,是标量
if(is_scalar($a)){
echo '真........';
}else{
echo '假!!!!!!!!';
}
结果为:真
is_object()类型: //是不是对象
is_numeric()类型: //是不是数字
is_callable()类型: //是不是函数名
自动类型转换:
发生情况:
第一, 在运算的时候
第二, 在判断的时候
当bool值与整型相运算的时候:
1,将bool值的真变为整型的1来执行
2,将bool值的假变为整型的0来执行
当bool值与浮点进行运算的时候:
1, bool值的真会变为浮点的1.0来参与运算
2, bool值的false会变为浮点的0.0
当字符串与一个整型或浮点相加的时候:
1, 会将后面的字符串全部干掉
2, 只会将前面的数值和对应的整型或浮点相运算
3, 如果字符串参与运算的时候必须要数值放在最前面。如果放到中间或者后面,会视为0来运算
NOTICE: 空与整型为浮点运算的时候结果会为0来参与运算
强制类型转换:【注意】方法 (一):1,intval floatval strval 用上这三个函数,将其变为整型或者浮点或者字符串
例子:剩余两个函数用法一样
$one=1;
$t=floatval($one);
var_dump($t);
方法 (二):2,在值前加上 (类型)$one example: (int)1.1
$a=(bool)$true;
$b=(int)$_GET['id'];
方法 (三):使用settype函数,来完成强制类型转换:1、需要向settype里面传进去一个变量,后面第二个参数直接传入对应的类型。
2、返回操作成功还是操作未成功。直接改变变量的类型和值
3、Settype(变量,’null’)等价于unset(变量)
4、空转换为字符串,会变为空字符串
强制类型转换:
如果是浮点转为对应的整型,将小数点后面全部干掉。不是四舍五入
将字符串转为bool值的时候,空字符串和字符串的’0’会变为布尔值的假
字符串变为整型,会将最前面的数值保留后面的字符串全干掉
直接用(null)(resource) 这样会报错啊,语法不正确【特殊类型不能采用这种方式来进行强制类型转换】