数据类型
2017.8.1 22:00 星期二
本章目标
1. 掌握PHP数据类型、数据类型转换、类型检测
2. 掌握PHP常量定义及预定义常量
3. 掌握PHP变量、变量的作用域及预定义变量
4. 了解可变变量的定义
PHP的数据类型
标量数据类型
布尔型 Boolean
字符串型 string
整形 integer
浮点型 float
复合数据类型
数组array :相同类型变量的集合
对象 object
特殊数据类型
资源 resource :句柄由编程人员分配
空值null :唯一值是null
数据类型转换
在变量前加上括号括起类型名称即可。
代码演示
代码基础结构
采用编码工具SubLime Text 图形设计工具Dragram Designer
文件内容体使用<?php ?>
//输出汉字乱码,加编码规范
header("content-type:text/html;charset=utf-8");
数据类型自动转换
总原则:自动转换遵循转换的数据长度增加的方向进行。
1. 有Boolean值参与运算时,true将转换为整型1,false为整型0后再参与运算。
2. 有NULL参与运算时,NULL将转换为整数0再参与运算。
3. 有integer和float运算时,先将int转换为float
4. String和数值型(int, float)参与运算时,字符串先转为数字再参与运算。
$intData= 1;
$strData= "123学习";
$boolData=true;
$floatData=1.2;
//字符串自动转整型
var_dump($intData+ $strData);
//boolean类型转整
var_dump($intData+ $boolData);
//整型自动转float
var_dump($intData+ $floatData);
//都转为整型
var_dump($strData+$boolData);
//字符串转float
var_dump($strData+ $floatData);
//boolean转float
var_dump($boolData+$floatData);
其他类型转Boolean
Int转boolean:非0,则打印出的均为 true.
$intData = 123;
$booleanData = (boolean)$intData;
var_dump($booleanData); //函数 打印出 值 和 类型
打印结果:true
结论:非0,则打印出的均为 true.
String转boolean:非空均为true,非0字符串除外
$strData="ff";
$booleanData= (boolean)$strData;
var_dump($booleanData);
打印结果:true
结论:非空均为true,非0字符串除外。
其他类型转Int
Boolean转intger : true为1 false为0
String转integer : 空为,非空(如果数字在前,为数字。否则为0)
$boolData =false;
$strData= "123学习";
$intData = (integer)$strData;
var_dump($intData);
其他类型转String
Int转string:整数是什么,则字符串就是什么
Boolean转string :true是1 ,false为空即没有元素。
PHP类型检测
内置检测数据类型的系列函数:
Is_boo is_string is_float is_doubleis_integer is_int is_null is_arrayis_object Is_resources is_numeric(是否是任何类型的数字或数字字符串)
is_scalar(检测是否是标量) is_callable(是否是有效的函数名)
$intData = 8;
if(is_integer($intData))
echo "success";
else
echo "false";
PHP常量
常量可以理解为值不变的变量,常量被赋值后,在脚本的任何地方都不能改变。
特性:
1. 区分大小写,在定义时可以指定是否是大小写敏感。
2. 默认情况下,常量作用域是全局的,在当前脚本的任何地方都能使用。
3. 新定义的常量名称不能与已定义的常量或变量重名。
4. 定义常量时,尽量使用大写字母,便于识别和阅读。
5. 不能以$开头,常量的值只能是标量,字符串 整型 浮点型布尔。
定义函数define(); 检测是否定义常量defined();
常量的定义 和 检测
bool define(常量编号,常量值,是否不区分大小写=false)
define("HOME", 1234);
echoHOME;
bool defines(常量编号)
if(defined("HOME"))
echo"success";
else
echo "failed";
PHP预定义常量
PHP_OS【UNIX或WINNT】 当前操作系统名称
PHP_VERSION【5.2.6等】当前PHP服务器版本
TRUE【TRUE】 FALSE 【FALSE】NULL【NULL】
E_ERROR【1】错误,导致PHP脚本运行终止
E_WARNING 【2】警告,但不会导致脚本停止
E_PARSE 【4】解析错误,由程序解析器报告
E_NOTICE【8】 非关键错误,例如变量未初始化
M_PI 数学中的π
PHP魔术常量
格式:双下划线__+大写字母+双下划线__
__FILE__ 当前文件名,绝对路径。
__LINE__ 当前代码所在行
__FUNCTION__当前函数名
__CLASS__ 当前类名
__METHOD__对象的方法名
PHP变量作用域
l 局部变量
函数内部定义,只供本函数调用
l 全局变量
定义在所有函数之外,作用域是整个PHP文件。在用户定义函数内部不可用,若需要需要,则要加global关键词声明。
l 静态变量
函数调用后仍保留变量值,再次回到作用域时,继续使用原来初始定义的值。
使用关键字static声明。
PHP预定义变量
$_SERVER[‘SERVER_ADDR’] 服务器地址
$_SERVER[‘SERVER_NAME’] 服务器主机名或域名
$_SERVER[‘REQUESTMETHOD_’]
$_SERVER[‘REMOTE_ADDR’] 当前浏览网页的用户IP
$_SERVER[‘REMOTE_HOST’] 当前浏览网页的用户主机名
$_SERVER[‘REMOTE_PORT’] 当前浏览网页的用户主机端口
$_SERVER[‘SCRIPT_FILENAME’] 当前执行脚本的绝对路径
$_SERVER[‘SERVER_PORT’] 服务器使用的端口
笔记下载:
http://download.csdn.net/detail/hugaozhuang/9918255
致谢:
百度传课 唐老师 https://chuanke.baidu.com/v2410042-150918-561122.html