Action disabled: source

紫郢青索

知之者不如好之者,好之者不如乐之者

用户工具

站点工具


PHP的数据类型

Boolean 布尔类型

Boolean 布尔类型,表示两个值 TRUE-“真” 和 FALSE-“假” 。

创建布尔类型变量

要指定一个布尔值,使用常量 TRUEFALSE。两个都不区分大小写。

boolean_1.php
<?php
    $isTrue = True;
    $isTRUE = TRUE;
    var_dump($isTrue);
    var_dump($isTRUE);
?>

转换为布尔值

要明确地将一个值转换成 boolean,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制结构需要一个 boolean 参数时,该值会被自动转换。

当转换为 boolean 时,以下值被认为是 FALSE

  • 布尔值 FALSE 本身
  • 整型值 0(零)
  • 浮点型值 0.0(零)
  • 空字符串,以及字符串 “0”
  • 不包括任何元素的数组
  • 特殊类型 NULL(包括尚未赋值的变量)
  • 从空标记生成的 SimpleXML 对象
  • 所有其它值都被认为是 TRUE(包括任何资源 和 NAN)。

Integer 整型

integer 是集合 ℤ = {…, -2, -1, 0, 1, 2, …} 中的某个数。

语法

整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

二进制表达的 integer 自 PHP 5.4.0 起可用。

要使用八进制表达,数字前必须加上 0(零)。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。

例如:

integer_1.php
<?php
    $a = 1234; // 十进制数
    $a = -123; // 负数
    $a = 0123; // 八进制数 (等于十进制 83)
    $a = 0x1A; // 十六进制数 (等于十进制 26)
    $a = 0b11111111; // 二进制数字 (等于十进制 255)
?>

Float 浮点型

浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义(有小数点 或 指数形式)。

如下:

float_1.php
<?php
    $a = 1.234; 
    $b = 1.2e3; 
    $c = 7E-10;
?>

String 字符串

由一系列字符组成,可以使用单引号或者双引号括起来。 例如:

string_1.php
<?php
    $a = 'I am happy';
    $b = "I am happy";
?>

Array 数组

数组是一个可以存储多个值的结构类型,是一个有序的映射。 看下它的例子:

array_1.php
<?php
// 指定键名
$a = array(
    "foo" => "bar",
    "bar" => "foo",
);
// 不指定键名
$b = array('bar','foo','hi');
// 多维数组
$a_1 = array('a'=>$a, 'b'=>$b);
 
// 自 PHP 5.4 起
$c = [
    "foo" => "bar",
    "bar" => "foo",
];
$d = ['bar','foo','hi'];
 
// 访问
echo $a['foo']; // 输出: bar
echo $a_1['a']['foo']; // 输出: bar
 
?>

Object 对象

对象是包含数据和处理数据的方法的数据类型。需要定义类,通过实例化类来得到对象。 下面例子定义类,并创建对象:

object_1.php
<?php
    // 定义类
    class Book{
        var $name;
        public function __construct($name){
            $this->name = $name;
        }
 
        public function showName(){
            echo $this->name;
        }
    }
 
    // 创建对象
    $book = new Book("PHP Book");
    $book->showName();
?>

Resource 资源类型

资源 resource 是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。

NULL

特殊类型NULL,表示变量没有值,NULL数据类型的唯一的值就是NULL。

在下列情况下一个变量被认为是 NULL:

  • 被赋值为 NULL。
  • 尚未被赋值。
  • 被 unset()。

Callback / Callable 类型

自 PHP 5.4 起可用 callable 类型指定回调类型 callback。

有些函数的参数可以接受callable类型的数据(也就是函数,或者对象的方法,静态类的方法)。

通俗的讲就是:函数、对象的方法、静态类的方法,可以作为参数传递给一些支持callable类型参数的方法。

不如函数 call_user_func() 或 usort() 可以接受用户自定义的回调函数作为参数。

PHP是将函数以string形式传递的。 可以使用任何内置或用户自定义函数,但除了语言结构例如:array(),echo,empty(),eval(),exit(),isset(),list(),print 或 unset()。

传递自定义函数

callable_1.php
<?php
    // 自定义函数
    function sayHi(){
        echo "Hi,it is nice to meet you."
    }
    call_user_func('sayHi'); 
?>

传递对象的方法

一个已实例化的 object 的方法被作为 array 传递,下标 0 包含该 object,下标 1 包含方法名。 在同一个类里可以访问 protected 和 private 方法。

例子:

callable_2.php
<?php
   // 定义类
   class MyClass{
       public function sayHi(){
           echo "Hi,it is nice to meet you."
       }
   }
   $obj = new MyClass();
   call_user_func(array($obj,'sayHi'); 
?>

传递静态类方法

例子:

callable_2.php
<?php
   // 定义类
   class MyClass{
       public static function sayHi(){
           echo "Hi,it is nice to meet you."
       }
   }
   // 数组形式传递
   call_user_func(array('MyClass','sayHi'); 
   // 'ClassName::methodName'形式传递,自 PHP 5.2.3 起支持
   call_user_func('MyClass::sayHi');
?>

学习了PHP的变量、数据类型,要想让PHP自动的做一些工作,就少不了做些if..else的判断。

下面我们看看 ☞ PHP条件判断

:-P