Submit Search
Upload
最近の PHP の話
•
6 likes
•
3,211 views
Y
y-uti
Follow
勤務先の社内勉強会での発表資料です。PHP 7.0 で新たに導入された機能と、PHP 7.1 で導入される予定の機能について、主だったところをざっと紹介したものです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
PHP の GC の話
PHP の GC の話
y-uti
Hack/HHVM 入門
Hack/HHVM 入門
y-uti
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa
OPcache の最適化器の今
OPcache の最適化器の今
y-uti
PECL を数えてみた
PECL を数えてみた
y-uti
HHVM Hack
HHVM Hack
Masaaki Yonebayashi
PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa
Recommended
PHP の GC の話
PHP の GC の話
y-uti
Hack/HHVM 入門
Hack/HHVM 入門
y-uti
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa
OPcache の最適化器の今
OPcache の最適化器の今
y-uti
PECL を数えてみた
PECL を数えてみた
y-uti
HHVM Hack
HHVM Hack
Masaaki Yonebayashi
PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
php-src の歩き方
php-src の歩き方
do_aki
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
do_aki
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
Kenichirou Oyama
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
php7's ast
php7's ast
do_aki
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
do_aki
CodeIgniter入門
CodeIgniter入門
Sho A
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Open Source System Administration Framework - Func
Open Source System Administration Framework - Func
Gosuke Miyashita
Php in ruby
Php in ruby
do_aki
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
More Related Content
What's hot
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki
php-src の歩き方
php-src の歩き方
do_aki
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
do_aki
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
Kenichirou Oyama
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
php7's ast
php7's ast
do_aki
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
do_aki
CodeIgniter入門
CodeIgniter入門
Sho A
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Open Source System Administration Framework - Func
Open Source System Administration Framework - Func
Gosuke Miyashita
Php in ruby
Php in ruby
do_aki
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
What's hot
(20)
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
php-src の歩き方
php-src の歩き方
PHPの今とこれから2021
PHPの今とこれから2021
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
PHPの今とこれから2019
PHPの今とこれから2019
PHP, Now and Then 2011
PHP, Now and Then 2011
PHPの今とこれから2020
PHPの今とこれから2020
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
php7's ast
php7's ast
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
CodeIgniter入門
CodeIgniter入門
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Open Source System Administration Framework - Func
Open Source System Administration Framework - Func
Php in ruby
Php in ruby
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Viewers also liked
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Yoshio Hanawa
Laungage Update PHP編
Laungage Update PHP編
Yoshio Hanawa
夏の総決算 Blender と Unity
夏の総決算 Blender と Unity
Yuichi Sato
JIT for PHP を試した
JIT for PHP を試した
y-uti
2016年4月のAWSサービスアップデートまとめ
2016年4月のAWSサービスアップデートまとめ
Amazon Web Services Japan
Real World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
フレームワーク
フレームワーク
yanchi
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
柴田 篤志
Javaの好きなところ
Javaの好きなところ
Aya Ebata
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
Learning jQuery
Learning jQuery
taiju higashi
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
Yusuke Ando
PHP選んで良かったこと
PHP選んで良かったこと
Wataru Terada
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
Cake Php開発事例
Cake Php開発事例
柴田 篤志
CakePHP PHP Framework
CakePHP PHP Framework
ryota ichie
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
cyberblack28 Ichikawa
CI/CD with Rancher CLI + Jenkins
CI/CD with Rancher CLI + Jenkins
Go Chiba
Viewers also liked
(20)
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7はなぜ速いのか
PHP7はなぜ速いのか
Laungage Update PHP編
Laungage Update PHP編
夏の総決算 Blender と Unity
夏の総決算 Blender と Unity
JIT for PHP を試した
JIT for PHP を試した
2016年4月のAWSサービスアップデートまとめ
2016年4月のAWSサービスアップデートまとめ
Real World PHP in pixiv
Real World PHP in pixiv
フレームワーク
フレームワーク
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
Javaの好きなところ
Javaの好きなところ
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Learning jQuery
Learning jQuery
Kawaz的jQuery入門
Kawaz的jQuery入門
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
PHP選んで良かったこと
PHP選んで良かったこと
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Cake Php開発事例
Cake Php開発事例
CakePHP PHP Framework
CakePHP PHP Framework
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
CI/CD with Rancher CLI + Jenkins
CI/CD with Rancher CLI + Jenkins
Similar to 最近の PHP の話
PHPの今とこれから2023
PHPの今とこれから2023
Rui Hirokawa
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
Hideo Kashioka
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
FuelPHPをさわってみて
FuelPHPをさわってみて
Sotaro Omura
System2 s2
System2 s2
Jun Chiba
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
Shohei Okada
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
Php apocalypse
Php apocalypse
Kiichi Kajiura
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
実践Sass 後編
実践Sass 後編
kosei27
第21回Creators MeetUp
第21回Creators MeetUp
Kenichi Mukai
test
test
a1yama1123
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Php5 4勉強会
Php5 4勉強会
Yuji Otani
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
鉄次 尾形
Similar to 最近の PHP の話
(20)
PHPの今とこれから2023
PHPの今とこれから2023
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP7を魔改造した話
PHP7を魔改造した話
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
FuelPHPをさわってみて
FuelPHPをさわってみて
System2 s2
System2 s2
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
Php apocalypse
Php apocalypse
知って得する標準関数の使い方
知って得する標準関数の使い方
実践Sass 後編
実践Sass 後編
第21回Creators MeetUp
第21回Creators MeetUp
test
test
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Php5 4勉強会
Php5 4勉強会
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
More from y-uti
潜在ディリクレ配分法
潜在ディリクレ配分法
y-uti
Active Object
Active Object
y-uti
目で見る過学習と正則化
目で見る過学習と正則化
y-uti
ロジスティック回帰入門
ロジスティック回帰入門
y-uti
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
y-uti
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロード
y-uti
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識
y-uti
スパース推定
スパース推定
y-uti
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
y-uti
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
y-uti
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
y-uti
JIT のコードを読んでみた
JIT のコードを読んでみた
y-uti
Task Spooler を試した
Task Spooler を試した
y-uti
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
y-uti
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみた
y-uti
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
y-uti
逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -
y-uti
各言語の k-means 比較
各言語の k-means 比較
y-uti
More from y-uti
(20)
潜在ディリクレ配分法
潜在ディリクレ配分法
Active Object
Active Object
目で見る過学習と正則化
目で見る過学習と正則化
ロジスティック回帰入門
ロジスティック回帰入門
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロード
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識
スパース推定
スパース推定
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
JIT のコードを読んでみた
JIT のコードを読んでみた
Task Spooler を試した
Task Spooler を試した
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
RFC: "var" Deprecation
RFC: "var" Deprecation
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみた
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -
各言語の k-means 比較
各言語の k-means 比較
最近の PHP の話
1.
最近の PHP の話 内山
雄司 (@y__uti) 2016-05-18 社内勉強会
2.
自己紹介 内山 雄司 (@y__uti) ◦
http://y-uti.hatenablog.jp/ (phpusers-ja) 仕事 ◦ 受託開発の会社 (株式会社ピコラボ) でプログラマをしています 興味 ◦ プログラミング言語処理系 ◦ 機械学習 2016-05-18 社内勉強会 2
3.
最新の PHP 使ってますか
? 2016-05-18 社内勉強会 3
4.
PHP のバージョン PHP の各バージョンのサポート状況 ◦
http://php.net/supported-versions.php 現在の状況 ◦ 5.4 サポート終了済み ◦ 5.5 2016 年 7 月 10 日で終了 ◦ 5.6 2018 年 12 月 31 日で終了 (5.x 系の最後なので特別に長い) ◦ 7.0 2018 年 12 月 3 日で終了 ただしディストリビュータがパッチを提供し続ける場合もある ◦ 例: CentOS 7 は PHP 5.4 だが CentOS がパッチを提供し続けている 2016-05-18 社内勉強会 4
5.
各バージョンの新機能 PHP マニュアルの「付録」を参照 ◦ http://php.net/manual/ja/appendices.php PHP
7.0 の新機能 ◦ スカラー型宣言 ◦ 戻り値の型宣言 ◦ Null 合体演算子 ◦ 宇宙船演算子 ◦ 無名クラス ◦ Throwable インタフェース ◦ などなど PHP 7 は「高速化」が宣伝されているが機能も結構増えている 2016-05-18 社内勉強会 5
6.
その前におさらい 2016-05-18 社内勉強会 6
7.
PHP 5.4 ~
PHP 5.6 昔はこういうのも書けなかった。 PHP 5.4 (2012-03-01) ◦ トレイト 正直私は全く使いこなせてないけど... ◦ 配列の短縮構文 array(1, 2, 3) を [1, 2, 3] と書けるように PHP 5.5 (2013-06-20) ◦ ジェネレータ yield ◦ finally try-catch に finally を書けるように ◦ OPcache 標準搭載 (言語機能じゃないけど) PHP 5.6 (2014-08-28) ◦ 可変個引数 ...$args と書けるように ◦ 累乗演算子 ** 2016-05-18 社内勉強会 7
8.
PHP 7.0 (2015-12-03) 2016-05-18
社内勉強会 8
9.
スカラー型宣言 関数の引数にスカラー型も宣言できるようになった 2016-05-18 社内勉強会 9 <?php function
int_plus(int $a, int $b) { return $a + $b; } echo int_plus(1, 2); // 3 echo int_plus(1.6, 3.7); // 4 ◦ 既定の動作:宣言された型に変換される ◦ 二番目の例では $a = 1, $b = 3 として関数が実行される
10.
戻り値の型宣言 関数の戻り値の型を宣言できるようになった 2016-05-18 社内勉強会 10 <?php function
int_plus($a, $b): int { return $a + $b; } echo int_plus(1, 2); // 3 echo int_plus(1.6, 3.7); // 5 ◦ 既定の動作:宣言された型に変換される ◦ 二番目の例では 1.6 + 3.7 = 5.3 が int に変換されて 5 が戻される
11.
強い型付け 宣言された型と異なる場合にエラーとする 2016-05-18 社内勉強会 11 <?php declare(strict_types
= 1); function int_plus(int $a, int $b) { return $a + $b; } echo int_plus(1.6, 3.7); // Error ◦ ファイル内で有効 ◦ 戻り値の型宣言に対しても有効
12.
強い型付け(面倒な話) 引数の型宣言:関数を呼び出すファイルに declare を書く 2016-05-18
社内勉強会 12 <?php function int_plus(int $a, int $b) { return $a + $b; } <?php declare(strict_types = 1); echo int_plus(1.6, 3.7); // Error
13.
強い型付け(面倒な話) 戻り値の型宣言:関数を定義するファイルに declare を書く 2016-05-18
社内勉強会 13 <?php declare(strict_types = 1); function int_plus($a, $b): int { return $a + $b; } <?php echo int_plus(1.6, 3.7); // Error
14.
Null 合体演算子 isset で調べて
false なら既定値を使う処理を簡単に書ける 2016-05-18 社内勉強会 14 <?php $arr = [ 'x' => 1, 'y' => 0 ]; echo $arr['x'] ?? 9; // 1 echo $arr['y'] ?? 9; // 0 echo $arr['z'] ?? 9; // 9 // ?: 演算子との違い echo $arr['x'] ?: 9; // 1 echo $arr['y'] ?: 9; // 9 echo $arr['z'] ?: 9; // Notice
15.
宇宙船演算子 両辺の大小関係を比較して -1, 0,
1 を返す 2016-05-18 社内勉強会 15 <?php function cmp($a, $b) { return $a['x'] <=> $b['x'] ?: $a['y'] <=> $b['y']; } $data = [['x' => 3, 'y' => 2], ['x' => 3, 'y' => 0], ['x' => 2, 'y' => 5], ['x' => 2, 'y' => 7]]; usort($data, 'cmp');
16.
無名クラス クラスを定義してその場でインスタンスを作成できる 2016-05-18 社内勉強会 16 <?php $logger
= new class implements Logger { ... }; ◦ 以下はコンストラクタに引数を渡してインスタンスを生成する例 <?php $foo = new class(10) extends SomeClass { ... };
17.
Throwable すべての例外やエラーが実装する共通の基底インタフェース 2016-05-18 社内勉強会 17 <?php $a
= 0; try { $a->foo(); // E_ERROR (重大な実行時エラー) } catch (Throwable $e) { // エラーも catch される ... }
18.
Throwable(面倒な話) 例外ハンドラがエラーも補足する 2016-05-18 社内勉強会 18 <?php function
exception_handler($e) { ... } set_exception_handler('exception_handler'); $a = 0; $a->foo(); // exception_handler が実行される
19.
Throwable(面倒な話) 例外ハンドラの引数は Exception とは限らない 2016-05-18
社内勉強会 19 <?php function exception_handler(Exception $e) { ... } set_exception_handler('exception_handler'); $a = 0; $a->foo(); // exception_handler で型エラー ◦ 型宣言を外す (PHP5, PHP7 兼用) ◦ Throwable に変更する (PHP7 専用)
20.
もっと新しい PHP 2016-05-18 社内勉強会
20
21.
将来の PHP の動向 PHP
Wiki の RFC を参照 ◦ https://wiki.php.net/rfc PHP 7.1 の新機能 ◦ Allow specifying keys in list() ◦ Square bracket syntax for array destructing assignment ◦ Generalize support of negative string offsets ◦ Support class constant visibility ◦ Void return type ◦ Catching multiple exception types ◦ Null coalescing assignment operator ◦ Nullable types (2016-05-18 時点では投票中の状況) ◦ などなど 2016-05-18 社内勉強会 21
22.
Allow specifying keys
in list() list にキーを指定できるようになる 2016-05-18 社内勉強会 22 <?php $p = ['x' => 2, 'y' => 3, 'z' => 4]; list ('x' => $x, 'y' => $y) = $p; // $x = 2, $y = 3
23.
Square bracket syntax for
array destructuring assignment list を角括弧で書けるようになる 2016-05-18 社内勉強会 23 <?php $p = ['x' => 2, 'y' => 3, 'z' => 4]; ['x' => $x, 'y' => $y] = $p; // $x = 2, $y = 3
24.
Generalize support of negative
string offsets 文字列に負のオフセットを指定できるようになる 2016-05-18 社内勉強会 24 <?php $s = 'Hello, world!'; echo $s[-6]; // w ◦ 負の値を指定すると末尾から数える ◦ なぜ "Generalize" ? ◦ 従来より substr 関数ではサポートされていた ◦ それを角括弧や他の文字列関数でも使えるようにした
25.
Support class constant
visibility クラスの定数 (const) にアクセス権を指定できるようになる 2016-05-18 社内勉強会 25 <?php class MyClass { public const Foo = 1; // default protected const Bar = 2; private const Baz = 3; }
26.
Void return type 関数の戻り値の型宣言に
void を指定できるようになる 2016-05-18 社内勉強会 26 <?php function hello() : void { echo "Hello, world!¥n"; return 1; // error } hello(); ◦ 呼ばれた時にエラーになる (静的に検出されるわけではない)
27.
Catching multiple exception
types 例外の catch を複数まとめて指定できるようになる 2016-05-18 社内勉強会 27 <?php try { ... } catch (Exception1 | Exception2 | Exception3 $e) { ... }
28.
Null coalescing assignment
operator Null 合体演算子と代入をまとめて使えるようになる 2016-05-18 社内勉強会 28 <?php $param ??= 'default'; ◦ $param が null なら 'default' が代入される
29.
Nullable types (in
voting) 関数の型宣言に null 許容型を指定できるようになる 2016-05-18 社内勉強会 29 <?php function hello(?string $name) { $name ??= 'world'; echo "Hello, $name!¥n"; } hello('Yuji'); // Hello, Yuji! hello(null); // Hello, world! hello(); // error ◦ 2016-05-18 時点では投票中 (ですが accept されるのは確実な状況)
30.
PHP 7.1 のタイムテーブル PHP
Wiki の TODO を参照 (まだリンクされていないかも) ◦ https://wiki.php.net/todo/php71 順調に進めば 2016 年 12 月のリリース予定 ◦ 6 ヶ月の pre-release 期間が 6 月に始まる予定 2016-05-18 社内勉強会 30
31.
参考情報 Web 上にある日本語の説明記事 (公式サイト以外) PHP7
で変わること (hnw 氏) ◦ http://d.hatena.ne.jp/hnw/20150525 PHP7.1 の新機能 (rana_kualu 氏) ◦ http://qiita.com/rana_kualu/items/476385b674d27339f911 2016-05-18 社内勉強会 31
32.
まとめ 新しい PHP を使おう! 2016-05-18
社内勉強会 32
Download now