数据类型:
标量类型:整型(int)、浮点型(float)、字符串型(string)、布尔型(boolean)
复合类型:数组(array)、对象(object)
其他类型:资源(resource) NULL
int型最小值为-2147483647 ,即-2^31+1;最大值为2147483647,即2^31-1,可用PHP_INT_MAX表示。如果一个整型数据超过了这个最大值,则自动变成浮点型。
例如:
echo var_dump(2147483647); //结果:int 2147483647
echo var_dump(2147483648); //结果:float 2147483648
字符串型:
PHP语法分析器是用成对的引号来判断一个字符串的,当遇到与串的开头相对应的引号时,PHP便认为已经到了字符串尾部。因此,所有字符串必须使用同一种单或者双引号来定义开始和结束。
因此以下的输出是错误的:
$str = 'CSDN'dns'abc';
echo $str; //结果:syntax error
如果想在字符串中输出引号,正确的做法是进行转义:
$str = 'CSDN\'dns\'abc';
echo $str; //结果:CSDN'dns'abc
单双引号的差别:
1.单引号不会对字符串内的变量格式和转义字符进行处理。
2.如果定义纯粹字符串,不拼接不包含变量的话,用双引号效率稍高一点点。
如果定义含变量的字符串,单引号执行效率优于双引号,因为单引号不必识别变量。
3.如果字符串要定义成多行,并且引号之类的需要转义的字符要直接输出而不像麻烦地一次次使用\转义,
可以使用定界符:
/*
<<<STR
任意字符串
STR;
*/
$str0 = 'nothing';
$str = <<<STR0
csdn
sina'abc'\n\n\t$str0
abc eng
STR0; //这里一定要顶格写
echo $str;
//如果$str0后面跟了其他字符串,又想将str0作为变量输出,可以这样写:{$str0}
//如果想将$str0作为字符串输出,使用转义符将$转义即可:\$str0
输出结果:
csdn sina'abc' nothing abc eng
在html中当然看不到换行符、转义符,查看源代码即可看到:
csdn
sina'abc'
nothing
abc eng
echo进行字符串输出时,如果想输出单引号内的字符串同时又要输出变量,可以用“.”进行连接;
如果字符串使用拼接方式组成,可以使用逗号来连接需要拼接的各部分字符串和变量,比如
echo 'first',"second",$str,"end";
据说这样输出速度要快一些,原因在于echo可以接受多个参数,并直接按顺序输出,实际上逗号不是拼接字符串,而是把不同字符串和变量作为参数传送给echo命令。
布尔型:
在PHP里任何其他数据类型都可以转换为布尔型,true和false在PHP里不区分大小写。
任何数据类型非空、非0、非FALSE即为真。
数组:
定义数组:
$url = array('a', 'b', 'c');
对象:
//对象(object)
class web{
public $url = "www.sina.cn.com<br/>";
function say(){
echo "新浪<br/>";
}
}
$obj = new web();
echo $obj->url;
echo $obj->say();
资源:
NULL:
这个类型太常见了,不知道怎么说,理解就行……
数据类型判断:
var_dump函数:显示数据及其类型。
getType函数:获取数据类型(
系统函数不区分大小写),返回字符串。
各种返回
布尔型的判断函数:
is_int()
is_float
is_bool()
is_null()
is_array()
is_object()
is_resource()
一个简单例子:
$student = array('a', 'b', 'c', 'd');
if(is_array($student)){
foreach($student as $key=>$value){
echo "学生".$key."的姓名是".$value."<br/>";
}
}
结果:
学生0的姓名是a
学生1的姓名是b
学生2的姓名是c
学生3的姓名是d
数据类型转换:
1.自由转换,赋值时即决定。
2.强制转换。如:
<?php
$a = 100;
echo var_dump((string)$a); //不能写成string($a)
?>
字符型转换成整型时如果第一个字符不是数值型,则转换结果为0.例:
$b = "今天1天气不错";
echo var_dump((int)$b); //结果:int 0
字符串类型转换为数组时,数组第一项(索引为0)即为该字符串。
类型转换函数:
settype()
作用于原变量
例:
$a = "2014天气好";
settype($a, 'array');
intval()
转换为整型,
返回新的变量
,(int)FALSE为0
floatval()
转换为浮点型,
返回新的变量
strval()
转换为字符串型,
返回新的变量
后三个都只能作用于标量,即int float bool string.,对象、数组类型不支持。
现在都只是做了一个简单的了解,等后面看到具体的数据类型在来补充吧。
以上均为个人理解,初学php,如果有不对的地方,欢迎大家指正!