PHP language update 201211

3,013 views

Published on

Published in: Entertainment & Humor
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,013
On SlideShare
0
From Embeds
0
Number of Embeds
59
Actions
Shares
0
Downloads
2
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

PHP language update 201211

  1. 1. はい
  2. 2. 始まってしまいました
  3. 3. PHP Language UpdateMoriyoshi Koizumi <moriyoshi@php.net>
  4. 4. このプレゼンの見解はThe PHP Development Teamとは関係ありません This presentation does not reflect the opinions of the PHP development team.
  5. 5. Nov 15, 2012PHP 5.5 alpha1 released
  6. 6. PHP 5.5 alpha1の目玉 に基づく 断と偏見 独1.ジェネレータとコルーチン2.foreachで変数分解だ!!!!3.empty()のカッコ内に変数 以外が指定可能に!?4.finally5.社畜バグ修正
  7. 7. ジェネレータとコルーチンyieldキーワードの追加yieldを含む関数はジェネレータになる ジェネレータは特殊なイテレータとして ユーザには見えるsend()メソッドとの組み合わせによるコルーチン
  8. 8. ジェネレータとコルーチンスクリプト 実行結果<?php int(1)function foo() { int(2) yield 1; yield 2; int(3) yield 3;}foreach (foo() as $a) { var_dump($a);}
  9. 9. ジェネレータとコルーチンスクリプト 実行結果<?php startedfunction coroutine() { echo "startedn"; 1 while (true) { 2 $val = yield; echo "$valn"; }}$c = coroutine();$c->send(1);$c->send(2);
  10. 10. ジェネレータとコルーチン Pythonの場合スクリプト 実行結果def coroutine(): started print("started") 1 while True: 2 val = yield print(val)c = coroutine()c.next()c.send(1)c.send(2)
  11. 11. foreachで変数分解だ!!!!foreachステートメントで配列要素を分解できるなぜ今までできなかったのか疑問できてうれしいのかも(やや)疑問
  12. 12. foreachで変数分解だ!!!!スクリプト 実行結果<?php$list = array( 1, 2 array(1, 2), 3, 4 array(3, 4), array(5, 6) 5, 6);foreach ($list as list($a, $b)){ echo "$a, $bn";}
  13. 13. empty()のカッコ内に変数以外が指定可能に!?見てもらった方が早い<?phpvar_dump(empty(strlen()));なぜこれまでできなかったのだろう...
  14. 14. finallytry~catch~finallyなぜいままで...
  15. 15. finallyの落とし穴 Fatal errorが発生すると finallyが呼ばれない<?phptry { Fatal error: Unsupported operand types array() + 0;} finally { echo "finallyn"; // never get here!}
  16. 16. 社畜バグ修正DateTimeクラスのmodify()メソッドでは次のような機能をサポートしている<?php$d = new DateTime("2012-11-02");$d->modify("+1 days");var_dump($d->format(Y-m-d)); // 2012-11-03weekdays (営業日ベースのオフセット)の処理に悲劇が
  17. 17. 社畜バグ修正スクリプト<?php$d = new DateTime("2012-11-02");echo $d->format(l), "n";$d->modify("+5 weekdays");echo $d->format(l), "n"; Bug #61642 modify("+5 weekdays") returns Sunday実行結果 (∼PHP 5.4)Friday _人人人人人人_Sunday > 突然の社畜 <  ̄^Y^Y^Y^Y^Y^Y ̄
  18. 18. 社畜バグ修正スクリプト<?php$d = new DateTime("2012-11-02");echo $d->format(l), "n";$d->modify("+5 weekdays");echo $d->format(l), "n";実行結果 (PHP 5.5 alpha1)FridayFriday
  19. 19. ま と めハワイ諸島は10cm/年というスピードで伊豆半島に近づいているアンドロメダ大銀河は銀河系に40km/時というスピードで近づいているPHPはPythonに近づいている いずれも衝突の瞬間を生きているうちに 目撃できないのが残念です

×