[h1]PHP 7 終於發表 2015/12/03,跳過 PHP 6:效能 200%(比起5.6), 更省記憶體[/h1]
美國時間 2015/12/03 or 台灣時間 2015/12/04) 正式發表 PHP 7.0。
[hr]
1. 最新 Zend 3.0 引擎
2. 平均效能提升 100% 以上 (70% ~ 130%);也就是和以前比是 200%+
2.1 Drupal 於 PHP 7.0.0 效能為 PHP 5.6.10 的 "177%"
2.2 WordPress 於 PHP 7.0.0 效能為 PHP 5.6.10 的 "229%"
2.3 SugarCRM 於 PHP 7.0.0 效能為 PHP 5.6.10 的 "227%"
3. 指定純量 Scalar & Function return 型別: int, float, string, bool.
4. 效能提升,但減少記憶體使用。
5. 「太空船」運算子 "<=>",同時給你 a > b, a = b, a < b 三向判斷。
6. 「空值預設值」運算子 "??",讓你寫程式更簡單!
[hr]
[h2]更多 PHP7 (PHP6/PHP5) 延伸閱讀[/h2]
Q&A: 為什麼 5.6 跳過 PHP 6 ,直接到 PHP 7? 什麼,投票決定!?
PHP.net PHP 7.0 發表公告!
Zend 開發者官網 PHP 7.0 Release 公告!
[h2]太空船運算子範例(<=>): PHP 7 Spaceship Operator Example[/h2]
@
https://wiki.php.net/rfc/combined-comparison-operator
代碼:
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1
// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
// Objects
$a = (object) ["a" => "b"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 0
[h2]「空值預設值(??)」運算子範例: PHP 7 null coalescing operator Example[/h2]
@ https://wiki.php.net/rfc/isset_ternary
代碼:
// 原本這樣寫
$username = (isset($_POST['username']) ? $_POST['username'] : 'guest');
// PHP 7.0 現在可以這樣寫
$username = $_POST['username'] ?? 'guest';
[h2]「 回傳值指定」範例: PHP 7 Return Type Hint Example[/h2]
@ https://wiki.php.net/rfc/scalar_type_hints_v5
代碼:
function handle_age_calc($birthdate_str): int
{
/* do some birth-age calculation */
return $intAge;
}
[h2]Download & Build PHP 7.0 on Fedora[/h2]
代碼:
yum groupinstall 'Development Environment'
yum whatprovides autoconf automake
yum install libxml*
wget http://tw1.php.net/distributions/php-7.0.0.tar.gz
tar xvfz php-7.0.0.tar.gz
cd php-7.0.0
./buildconf
./configure
make -j8
./sapi/cli/php --version
(2015-12-04 15:33)