<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] 做一個簡單的總結,沒有涵蓋全部改動,因為不常見。 # number_format()不會返回-0 因為-0這種寫法很古怪,所以number_format(-0.01),會返回0。 # 對數組強制轉成對象時,會將整形key轉成string 直接看代碼, ~~~ $a = [0 => 1]; $a = (object)$a; print_r($a->{0}); //或者 print_r($a->{'0'}); ~~~ 現在允許這么寫。但是key已經變成string類型,即’0’。 # 不可以對不能count的對象調用count函數 沒有實現Countable接口的對象都不能調用count函數,比如 count(1),count(‘a’) 在之前都會返回1,但是在7.2版本以后,會返回一個E_WARNING級別的錯誤,看一個例子: ~~~ class _count implements Countable{ public function count() { return 10; } } $count = new _count(); echo count($count); // 10 ~~~ # 可以對__PHP_Incomplete_Class類型的對象調用is_object方法 __PHP_Incomplete_Class,這個東西就是有一個對象,php沒有找到定義它的地方,就會把該對象的類型變成這個,舉個例子: ~~~ $serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}'; print_r( unserialize($serialized_object) ); // __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => a [value] => 100 ) 在解序列化的時候很常見,可以用unserialize_callback_func選項去避免,舉個例子: $serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}'; ini_set('unserialize_callback_func', 'mycallback'); // 設置回調 print_r( unserialize($serialized_object) ); function mycallback($classname) { require_once $classname.".php"; } ~~~ 而在7,2版本對__PHP_Incomplete_Class對象調用is_object(),會返回true。 # 使用一個未定義的常量,會產生一個E_WARNING級別的錯誤。 ~~~ echo NAME; // Warning: Use of undefined constant NAME ~~~ # bcmod函數對于浮點數的操作 在之前,bcmod對于浮點數的運算類似于%操作符,但是在新版類似于fmod。 ~~~ echo bcmod(4,3.5); // 之前會返回1,現在會返回1,5 ~~~ # 對象返回類型聲明 如果參數類型聲明指定函數參數的預期類型,則返回類型聲明指定返回值的預期類型。 返回類型聲明指定了一個函數應該返回的變量的類型。 從PHP 7.2開始,我們被允許為對象數據類型使用返回類型聲明。這里是一個例子: ~~~ class MyClass { public $var = 'Hello World'; } $myclass = new MyClass; function test(MyClass $arg) : object { return $arg; } echo test($myclass)->var; ~~~ 以前的PHP版本會導致以下致命錯誤: Fatal error: Uncaught TypeError: Return value of test() must be an instance of object, instance of MyClass returned in /app/index.php:10 當然,在PHP 7.2中,這個代碼回應了“Hello World”。 # 參數類型加寬 PHP目前不允許子類和它們的父類或接口之間的參數類型有任何差異。這意味著什么? 考慮下面的代碼: ~~~ <?php class MyClass { public function myFunction(array $myarray) { /* ... */ } } class MyChildClass extends MyClass { public function myFunction($myarray) { /* ... */ } } ~~~ 這里我們省略了子類中的參數類型。在PHP 7.0中,這段代碼會產生以下警告: Warning: Declaration of MyChildClass::myFunction($myarray) should be compatible with MyClass::myFunction(array $myarray) in %s on line 8 自PHP 7.2以來,我們被允許在不破壞任何代碼的情況下省略子類中的類型。這個建議將允許我們升級類來在庫中使用類型提示,而不需要更新所有的子類。 # 在列表語法中尾隨逗號 數組中最后一項之后的尾隨逗號是PHP中的有效語法,有時為了方便追加新項目并避免由于缺少逗號而導致解析錯誤,鼓勵使用該語法。自PHP 7.2以來,我們被允許在分組命名空間中使用尾隨逗號。 請參閱列表語法中的尾隨逗號以便在此RFC處獲得更近的視圖以及一些代碼示例。 # 參數類型聲明 從PHP 5開始,我們可以在函數的聲明中指定期望傳遞的參數類型。如果給定的值是不正確的類型,那么PHP會拋出一個錯誤。參數類型聲明(也稱為類型提示)指定預期要傳遞給函數或類方法的變量的類型。 例如下面這個例子: ~~~ class MyClass { public $var = 'Hello World'; } $myclass = new MyClass; function test(MyClass $myclass){ return $myclass->var; } echo test($myclass); ~~~ 在這個代碼中,測試函數需要MyClass的一個實例。不正確的數據類型將導致以下致命錯誤: Fatal error: Uncaught TypeError: Argument 1 passed to test() must be an instance of MyClass, string given, called in /app/index.php on line 12 and defined in /app/index.php:8 由于PHP 7.2 類型提示可以與對象數據類型一起使用,并且這種改進允許聲明通用對象作為函數或方法的參數。這里是一個例子: ~~~ class MyClass { public $var = ''; } class FirstChild extends MyClass { public $var = 'My name is Jim'; } class SecondChild extends MyClass { public $var = 'My name is John'; } $firstchild = new FirstChild; $secondchild = new SecondChild; function test(object $arg) { return $arg->var; } echo test($firstchild); echo test($secondchild); ~~~ 在這個例子中,我們調用了兩次測試函數,每次調用都傳遞一個不同的對象。在以前的PHP版本中這是不可能的。
                  <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>

                              哎呀哎呀视频在线观看