PHP数据类型

什么是数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)resource(资源)这都是PHP的数据类型。

上面几种数据细分为标量类型、复合类型、还有特殊类型。

标量类型

1、字符串 (string)
    字符串有三种定义方式:单引号,双引号,定界符(heredoc);
    单引号字符串中出现的变量不会被变量的值替代;
    双引号字符串中最重要的一点是其中的变量会被变量值替代;

    如果遇到美元符号($)解析器会尽可能多地取得后面的字符以组成一个合法的变量名.
    如果想明确的指定名字的结束,用花括号把变量名括起来。

    例:

        $beer = "Heineken";
        echo "He drank some {$beer}s";

字符串定界的方法使用定界符语法 "<<<"

    例:
        $str = <<<EOD
        This is test.
        Hello word.
        EOD;
        echo $str;

  转义字符
    \n    换行

    \r    回车 ( WINDOW \r\n ) (linux \n) (Mac OS \r)

    \t    水平制表符 (按键盘 tab 产生的效果)

    \\    反斜线

    \$    美元符(表示变量的开始)

    \"    双引号
2、整型(integer)
整数是一个没有小数的数字。
整数规则:
    整数必须至少有一个数字 (0-9)
    整数不能包含逗号或空格
    整数是没有小数点的
    整数可以是正数或负数
    整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)


例:
    $a = 1234;
    var_dump($a);
3、浮点型(float, double)
浮点数是带小数部分的数字,或是指数形式。

例:
    $a = 1.234; 
    var_dump($a); //float(1.234)
4、布尔型(bool)
布尔型可以是 TRUEFALSE,布尔型通常用于条件判断。

以下值被认为是FALSE:
    布尔值  FALSE
    整型值 0
    浮点型值 0.0
    空白字符串和字符串 “0”
    没有成员变量的数组
    没有单元的对象(php4适用)
    特殊类型的NULL

例:
    $fo1 = false;
    var_dump($fo1);

复合数据类型

1、数组 (array)
数组可以在一个变量中存储多个值。

例:
    $data = ['一','二','三'];
    $data1 = array('a' => '周一','b' => '周二','c' => '周三')
    var_dump($data);
    var_dump($data1);
2、对象 (Object)
对象是存储数据和有关如何处理数据的信息的数据类型
class foo
{
    function do_foo()
    {
        echo "Doing foo."; 
    }
}
$bar = new foo;
$bar->do_foo();

特殊类型

1、资源 (resource)
存放资源数据( PHP外部数据, 如数据库, 文件 )

例:
    $fh = fopen("test.txt", "rw");
    var_dump($fh);
2、空值 (null)
null 无,表示没有值,null不表示空格,也不表示0;
    以下情况,则认为是null:

    没有设置为任何预定义的变量;
    明确的赋值为null;
    使用函数unset()清除;
例:
    $x = "Hello world!";
    $x = null;
    var_dump($x);

类型自动转换

因为php对于类型定义非常的松散,所以有时会根据引用变量的环境,将变量自动转换为最适合的类型;

例:
    $num = 5;
    $str = "15";
    echo $num + $str;

    $str = "100 hello";
    $num = 200;
    echo $num + $str;

    $str = '1.2';
    if($str){  //if 判断为 true
         echo 'hello world';
    }

类型转换

第一种转换方式: (int)  (bool)  (float)  (string)  (array) (object)

例: 
    $num = 3.14;
    $res = (int)$num;
    $res = (float)$num;
    $res = (string)$num;
    $res = (bool)$num;
    $res = (array)$num;
    $res = (object)$num;
    var_dump($res);

第二种转换方式:  intval()  floatval()  strval()

例:
    $str="123.9abc";   
    $int=intval($str);     //转换后数值:123   
    $float=floatval($str); //转换后数值:123.9   
    $str=strval($float);   //转换后字符串:"123.9"    
    var_dump($int);
    var_dump($float);
    var_dump($str);
powered by GitbookEdit Time: 2023-04-08 10:28:32