<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **可變參數** 在 PHP 5.6 及以上的版本中,由 **...** 語法實現;在 PHP 5.5 及更早版本中,使用函數[func\_num\_args()](https://www.php.net/manual/zh/function.func-num-args.php),[func\_get\_arg()](https://www.php.net/manual/zh/function.func-get-arg.php),和[func\_get\_args()](https://www.php.net/manual/zh/function.func-get-args.php) **PHP 5.6+** ``` function?sum(...$numbers)?{ ????$acc?=?0; ????foreach?($numbers?as?$n)?{ ????????$acc?+=?$n; ????} ????return?$acc; } echo?sum(1,?2,?3,?4);//10 ``` 您也可以在調用函數以將數組或Traversable變量或文字解壓縮到參數列表中時使用...: ``` function?add($a,?$b)?{ ????return?$a?+?$b; } echo?add(...[1,?2])."\n";//3 $a?=?[1,?2]; echo?add(...$a);//3 ``` 可以將 **...** 方法常規參數的后面 ``` function total_intervals($unit, DateInterval ...$intervals) { $time = 0; foreach ($intervals as $interval) { $time += $interval->$unit; } return $time; } $a = new DateInterval('P1D'); $b = new DateInterval('P2D'); echo total_intervals('d', $a, $b).' days'; //3 days echo total_intervals('d', null); // 致命錯誤, 因為null 不是一個 DateInterval 對象. ``` **PHP 5.6-** ``` function sum() { $acc = 0; foreach (func_get_args() as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4);//10 ``` ``` class Test { function __construct() { $num =func_num_args(); switch ($num) { case 0: echo "none "; break; case 1: echo "one "; break; case 2: echo "two "; break; } } } new Test();//none new Test(1);//one new Test(1,2);//two ``` ## **類型聲明** >[danger] 類型聲明不支持別名 如`function test(boolean $flag){}`會將boolean解析為boolean類而不是boolean類型 | Type | Description | Minimum PHP version | | --- | --- | --- | | Class/interface name | The parameter must be an[*instanceof*](https://www.php.net/manual/zh/language.operators.type.php)the given class or interface name. | PHP 5.0.0 | | *self* | The parameter must be an[*instanceof*](https://www.php.net/manual/zh/language.operators.type.php)the same class as the one the method is defined on. This can only be used on class and instance methods. | PHP 5.0.0 | | [array](https://www.php.net/manual/zh/language.types.array.php) | The parameter must be an[array](https://www.php.net/manual/zh/language.types.array.php). | PHP 5.1.0 | | [callable](https://www.php.net/manual/zh/language.types.callable.php) | 聲明參數必須是一個有效的回調函數[callable](https://www.php.net/manual/zh/language.types.callable.php). | PHP 5.4.0 | | [bool](https://www.php.net/manual/zh/language.types.boolean.php) | 聲明參數必須是[boolean](https://www.php.net/manual/zh/language.types.boolean.php). | PHP 7.0.0 | | [float](https://www.php.net/manual/zh/language.types.float.php) | 聲明參數必須是[float](https://www.php.net/manual/zh/language.types.float.php)或者 number. | PHP 7.0.0 | | [int](https://www.php.net/manual/zh/language.types.integer.php) | 聲明參數必須是[integer](https://www.php.net/manual/zh/language.types.integer.php). | PHP 7.0.0 | | [string](https://www.php.net/manual/zh/language.types.string.php) | 聲明參數必須是[string](https://www.php.net/manual/zh/language.types.string.php). | PHP 7.0.0 | ## **嚴格類型** 默認情況下,如果能做到的話,PHP將會強迫錯誤類型的值轉為函數期望的標量類型。 例如,一個函數的一個參數期望是[string](https://www.php.net/manual/zh/language.types.string.php),但傳入的是[integer](https://www.php.net/manual/zh/language.types.integer.php),最終函數得到的將會是一個[string](https://www.php.net/manual/zh/language.types.string.php)類型的值。 ``` function test(string $str){ return $str; } var_dump(test(10));//string(2) "10" ``` 可以基于每一個文件開啟嚴格模式。在嚴格模式中,只有一個與類型聲明完全相符的變量才會被接受,否則將會拋出一個**TypeError**。 唯一的一個例外是可以將[integer](https://www.php.net/manual/zh/language.types.integer.php)傳給一個期望[float](https://www.php.net/manual/zh/language.types.float.php)的函數。 使用[*declare*](https://www.php.net/manual/zh/control-structures.declare.php)語句和*strict\_types*聲明來啟用嚴格模式: >[danger] **Caution** 啟用嚴格模式同時也會影響[返回值類型聲明](https://www.php.net/manual/zh/functions.returning-values.php#functions.returning-values.type-declaration). > **Note**: > 嚴格類型適用于在*啟用嚴格模式的文件內*的函數調用,而不是在那個文件內聲明的函數。 一個沒有啟用嚴格模式的文件內調用了一個在啟用嚴格模式的文件中定義的函數,那么將會遵循調用者的偏好(弱類型),而這個值將會被轉換。 > **Note**: > 嚴格類型僅用于標量類型聲明,也正是因為如此,這需要PHP 7.0.0 或更新版本,因為標量類型聲明也是在那個版本中添加的。 **例子** ``` <?php declare(strict_types=1); function?sum(int?$a,?int?$b)?{ ????return?$a?+?$b; } var_dump(sum(1,?2));//3 var_dump(sum(1.5,?2.5));//致命錯誤,傳遞給sum的參數必須是int ``` 例外 申明float時可以傳入int類型的參數且自動轉為float ``` declare(strict_types=1); function sum(float $a, float $b){ return $a +$b; } var_dump(sum(1, 2));//float(3) var_dump(sum(1.5,2.5));//float(4) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看