超全局数组及外部变量

来源:互联网 发布:安卓需要java什么基础 编辑:程序博客网 时间:2024/05/16 12:24

超全局数组:

$_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来参与运算

强制类型转换:【注意】
方法 (一):

1intval  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返回操作成功还是操作未成功。直接改变变量的类型和值

3Settype(变量,’null’)等价于unset(变量)

4空转换为字符串,会变为空字符串

 
 

强制类型转换:

如果是浮点转为对应的整型,将小数点后面全部干掉。不是四舍五入

将字符串转为bool值的时候,空字符串和字符串的’0’会变为布尔值的假

字符串变为整型,会将最前面的数值保留后面的字符串全干掉

直接用(null)(resource) 这样会报错啊,语法不正确【特殊类型不能采用这种方式来进行强制类型转换】

 

0 0