php數據類型

布爾型

整型

浮點型

字符串

數組

對象

資源型

資源是由專門的函數建立和使用用的,比如fopen,mysql_connect等,可用get_resource_type來返回資源類型

$db = mysql_connect();
echo get_resource_type($db) . PHP_EOL;

$fp = fopen('/', 'w');
echo get_resource_type($fp);

使用打開文件,連接數據庫,創建畫布等的函數返回的都是資源型

Iterables

回調類型

能夠接收用戶自定義函數的函數,比如call_user_func,sort。回調函數不僅僅是函數,也可以是對象方法,包括靜態類方法。
call_user_func舉例,sort可看這裏

  • 傳遞函數

    function doSomething() {
        echo 'Hello World';
    }
    call_user_func('doSomething'); // Hello World

    帶有參數的回調函數

    function doSomething(...$param) {
        print_r($param); 
    }
    
    call_user_func('doSomething', '1', '2');
    // 輸出一個數組
    // Array ( [0] => 1 [1] => 2 )
  • 傳遞類和方法

    class Test
    {
        public function doSomething() {
            echo "Hello World";
        }
    }
    call_user_func([new Test(), 'doSomething']);
    // 輸出
    // Hello World

    靜態方法

    class Test
    {
        public static function doSomething($param) {
            echo $param;
        }
    }
    call_user_func(['Test', 'doSomething'], 1, 2);
    // 輸出第一個參數
    // 1

    傳遞帶有參數的類和方法

    class Test
    {
        public function doSomething($param) {
            echo $param;
        }
    }
    call_user_func([new Test(), 'doSomething'], 1, 2);
    // 輸出
    // 1

    從上面幾個實例可以得出以下幾點:

    1. call_user_func函數可以使用用戶的自定義函數
    2. 可以傳遞類和方法,靜態方法不需要類實例化
    3. call_user_func函數可以傳遞多個參數,直接echo獲取的是第一個參數,如果需要獲取全部參數,需要在方法中以下面這種方式獲取,這是php的語法糖。

      function doSomething(...$param) {
          print_r($param);
      }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章