SlideShare a Scribd company logo
1 of 32
Download to read offline
最近の PHP の話
内山 雄司 (@y__uti)
2016-05-18 社内勉強会
自己紹介
内山 雄司 (@y__uti)
◦ http://y-uti.hatenablog.jp/ (phpusers-ja)
仕事
◦ 受託開発の会社 (株式会社ピコラボ) でプログラマをしています
興味
◦ プログラミング言語処理系
◦ 機械学習
2016-05-18 社内勉強会 2
最新の PHP 使ってますか ?
2016-05-18 社内勉強会 3
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
各バージョンの新機能
PHP マニュアルの「付録」を参照
◦ http://php.net/manual/ja/appendices.php
PHP 7.0 の新機能
◦ スカラー型宣言
◦ 戻り値の型宣言
◦ Null 合体演算子
◦ 宇宙船演算子
◦ 無名クラス
◦ Throwable インタフェース
◦ などなど
PHP 7 は「高速化」が宣伝されているが機能も結構増えている
2016-05-18 社内勉強会 5
その前におさらい
2016-05-18 社内勉強会 6
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
PHP 7.0 (2015-12-03)
2016-05-18 社内勉強会 8
スカラー型宣言
関数の引数にスカラー型も宣言できるようになった
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 として関数が実行される
戻り値の型宣言
関数の戻り値の型を宣言できるようになった
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 が戻される
強い型付け
宣言された型と異なる場合にエラーとする
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
◦ ファイル内で有効
◦ 戻り値の型宣言に対しても有効
強い型付け(面倒な話)
引数の型宣言:関数を呼び出すファイルに 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
強い型付け(面倒な話)
戻り値の型宣言:関数を定義するファイルに 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
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
宇宙船演算子
両辺の大小関係を比較して -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');
無名クラス
クラスを定義してその場でインスタンスを作成できる
2016-05-18 社内勉強会 16
<?php
$logger = new class implements Logger {
...
};
◦ 以下はコンストラクタに引数を渡してインスタンスを生成する例
<?php
$foo = new class(10) extends SomeClass {
...
};
Throwable
すべての例外やエラーが実装する共通の基底インタフェース
2016-05-18 社内勉強会 17
<?php
$a = 0;
try {
$a->foo(); // E_ERROR (重大な実行時エラー)
} catch (Throwable $e) { // エラーも catch される
...
}
Throwable(面倒な話)
例外ハンドラがエラーも補足する
2016-05-18 社内勉強会 18
<?php
function exception_handler($e)
{
...
}
set_exception_handler('exception_handler');
$a = 0;
$a->foo(); // exception_handler が実行される
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 専用)
もっと新しい PHP
2016-05-18 社内勉強会 20
将来の 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
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
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
Generalize
support of negative string offsets
文字列に負のオフセットを指定できるようになる
2016-05-18 社内勉強会 24
<?php
$s = 'Hello, world!';
echo $s[-6]; // w
◦ 負の値を指定すると末尾から数える
◦ なぜ "Generalize" ?
◦ 従来より substr 関数ではサポートされていた
◦ それを角括弧や他の文字列関数でも使えるようにした
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;
}
Void return type
関数の戻り値の型宣言に void を指定できるようになる
2016-05-18 社内勉強会 26
<?php
function hello() : void
{
echo "Hello, world!¥n";
return 1; // error
}
hello();
◦ 呼ばれた時にエラーになる (静的に検出されるわけではない)
Catching multiple exception types
例外の catch を複数まとめて指定できるようになる
2016-05-18 社内勉強会 27
<?php
try {
...
} catch (Exception1 | Exception2 | Exception3 $e) {
...
}
Null coalescing assignment operator
Null 合体演算子と代入をまとめて使えるようになる
2016-05-18 社内勉強会 28
<?php
$param ??= 'default';
◦ $param が null なら 'default' が代入される
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 されるのは確実な状況)
PHP 7.1 のタイムテーブル
PHP Wiki の TODO を参照 (まだリンクされていないかも)
◦ https://wiki.php.net/todo/php71
順調に進めば 2016 年 12 月のリリース予定
◦ 6 ヶ月の pre-release 期間が 6 月に始まる予定
2016-05-18 社内勉強会 30
参考情報
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
まとめ
新しい PHP を使おう!
2016-05-18 社内勉強会 32

More Related Content

What's hot

PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021Rui Hirokawa
 
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)do_aki
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019Rui Hirokawa
 
PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011Rui Hirokawa
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020Rui Hirokawa
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
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)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 astphp7's ast
php7's astdo_aki
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...do_aki
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - FuncGosuke Miyashita
 
Php in ruby
Php in rubyPhp in ruby
Php in rubydo_aki
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたKatsuhiro Miura
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼうDaiki Ichinose
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 

What's hot (20)

PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
PHPの今とこれから2021
PHPの今とこれから2021PHPの今とこれから2021
PHPの今とこれから2021
 
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019
 
PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin実"戦"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)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 astphp7's ast
php7's ast
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼう
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 

Viewers also liked

PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントYoshio Hanawa
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのかYoshio Hanawa
 
Laungage Update PHP編
Laungage Update PHP編Laungage Update PHP編
Laungage Update PHP編Yoshio Hanawa
 
夏の総決算 Blender と Unity
夏の総決算 Blender と Unity夏の総決算 Blender と Unity
夏の総決算 Blender と UnityYuichi Sato
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試したy-uti
 
2016年4月のAWSサービスアップデートまとめ
2016年4月のAWSサービスアップデートまとめ2016年4月のAWSサービスアップデートまとめ
2016年4月のAWSサービスアップデートまとめAmazon Web Services Japan
 
Real World PHP in pixiv
Real World PHP in pixivReal World PHP in pixiv
Real World PHP in pixivKenta USAMI
 
フレームワーク
フレームワークフレームワーク
フレームワークyanchi
 
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoyaオープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya柴田 篤志
 
Javaの好きなところ
Javaの好きなところJavaの好きなところ
Javaの好きなところAya Ebata
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室Yusuke Ando
 
Kawaz的jQuery入門
Kawaz的jQuery入門Kawaz的jQuery入門
Kawaz的jQuery入門Kohki Miki
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったことWataru Terada
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションHideo Kashioka
 
Cake Php開発事例
Cake Php開発事例Cake Php開発事例
Cake Php開発事例柴田 篤志
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Frameworkryota ichie
 
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulicDocker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ puliccyberblack28 Ichikawa
 
CI/CD with Rancher CLI + Jenkins
CI/CD with Rancher CLI + JenkinsCI/CD with Rancher CLI + Jenkins
CI/CD with Rancher CLI + JenkinsGo Chiba
 

Viewers also liked (20)

PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのか
 
Laungage Update PHP編
Laungage Update PHP編Laungage Update PHP編
Laungage Update PHP編
 
夏の総決算 Blender と Unity
夏の総決算 Blender と Unity夏の総決算 Blender と Unity
夏の総決算 Blender と Unity
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試した
 
2016年4月のAWSサービスアップデートまとめ
2016年4月のAWSサービスアップデートまとめ2016年4月のAWSサービスアップデートまとめ
2016年4月のAWSサービスアップデートまとめ
 
Real World PHP in pixiv
Real World PHP in pixivReal World PHP in pixiv
Real World PHP in pixiv
 
フレームワーク
フレームワークフレームワーク
フレームワーク
 
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoyaオープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
 
Javaの好きなところ
Javaの好きなところJavaの好きなところ
Javaの好きなところ
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
Learning jQuery
Learning jQueryLearning jQuery
Learning jQuery
 
Kawaz的jQuery入門
Kawaz的jQuery入門Kawaz的jQuery入門
Kawaz的jQuery入門
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
PHP選んで良かったこと
PHP選んで良かったことPHP選んで良かったこと
PHP選んで良かったこと
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
Cake Php開発事例
Cake Php開発事例Cake Php開発事例
Cake Php開発事例
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
 
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulicDocker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
 
CI/CD with Rancher CLI + Jenkins
CI/CD with Rancher CLI + JenkinsCI/CD with Rancher CLI + Jenkins
CI/CD with Rancher CLI + Jenkins
 

Similar to 最近の PHP の話

PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023Rui Hirokawa
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数Wataru Terada
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介sters
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜Hideo Kashioka
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)Arata Fujimura
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarSotaro Karasawa
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみてSotaro Omura
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかShohei Okada
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方Soudai Sone
 
実践Sass 後編
実践Sass 後編実践Sass 後編
実践Sass 後編kosei27
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会Yuji Otani
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia鉄次 尾形
 

Similar to 最近の PHP の話 (20)

PHPの今とこれから2023
PHPの今とこれから2023PHPの今とこれから2023
PHPの今とこれから2023
 
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
 
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみて
 
System2 s2
System2 s2System2 s2
System2 s2
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
Php apocalypse
Php apocalypsePhp apocalypse
Php apocalypse
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
実践Sass 後編
実践Sass 後編実践Sass 後編
実践Sass 後編
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
test
testtest
test
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
 

More from y-uti

潜在ディリクレ配分法
潜在ディリクレ配分法潜在ディリクレ配分法
潜在ディリクレ配分法y-uti
 
Active Object
Active ObjectActive Object
Active Objecty-uti
 
目で見る過学習と正則化
目で見る過学習と正則化目で見る過学習と正則化
目で見る過学習と正則化y-uti
 
ロジスティック回帰入門
ロジスティック回帰入門ロジスティック回帰入門
ロジスティック回帰入門y-uti
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...y-uti
 
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロードPECL operator で演算子オーバーロード
PECL operator で演算子オーバーロードy-uti
 
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識PHP-ML で手書き数字認識
PHP-ML で手書き数字認識y-uti
 
スパース推定
スパース推定スパース推定
スパース推定y-uti
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話y-uti
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告y-uti
 
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用y-uti
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみたy-uti
 
Task Spooler を試した
Task Spooler を試したTask Spooler を試した
Task Spooler を試したy-uti
 
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件y-uti
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告y-uti
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecationy-uti
 
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたWindows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたy-uti
 
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみたWindows で PHP をビルドしてみた
Windows で PHP をビルドしてみたy-uti
 
逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -y-uti
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較y-uti
 

More from y-uti (20)

潜在ディリクレ配分法
潜在ディリクレ配分法潜在ディリクレ配分法
潜在ディリクレ配分法
 
Active Object
Active ObjectActive Object
Active Object
 
目で見る過学習と正則化
目で見る過学習と正則化目で見る過学習と正則化
目で見る過学習と正則化
 
ロジスティック回帰入門
ロジスティック回帰入門ロジスティック回帰入門
ロジスティック回帰入門
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
 
PECL operator で演算子オーバーロード
PECL operator で演算子オーバーロードPECL operator で演算子オーバーロード
PECL operator で演算子オーバーロード
 
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識PHP-ML で手書き数字認識
PHP-ML で手書き数字認識
 
スパース推定
スパース推定スパース推定
スパース推定
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
 
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
 
Task Spooler を試した
Task Spooler を試したTask Spooler を試した
Task Spooler を試した
 
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
Windows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみたWindows で拡張モジュールをビルドしてみた
Windows で拡張モジュールをビルドしてみた
 
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみたWindows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
 
逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較
 

最近の PHP の話