Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHP関数他探訪2016

4,155 views

Published on

2016/05/21 PHPカンファレンス福岡2016

Published in: Engineering
  • Be the first to comment

PHP関数他探訪2016

  1. 1. 2016/05/21 株式会社Fusic 平田 哲 PHP関数他探訪2016
  2. 2. Fusic Co., Ltd. 自己紹介 3 平田 哲(HIRATA, Satoshi) id: debility Fusic Co., Ltd. http://fusic.co.jp/ Fukuoka.pm Program, Server, Network, and “Nomikai” icon: © mutsuking
  3. 3. Fusic Co., Ltd. 三行広告 4
  4. 4. Fusic Co., Ltd. 三行広告 5 エンジニア募集しています。 エンジニア募集しています。 エンジニア募集しています。
  5. 5. Fusic Co., Ltd. このLTについて 6 圧倒的な物量を誇るPHPの関数をたまには見 直して、愛でる話です。
  6. 6. Fusic Co., Ltd. 重要 7 PHP関数他探訪2016
  7. 7. Fusic Co., Ltd. 重要 8 PHP関数他探訪2016
  8. 8. Fusic Co., Ltd. 重要 9 関数以外も喋ってよし
  9. 9. Fusic Co., Ltd. このLTについて 10 圧倒的な物量を誇るPHPの関数に限らないも ろもろをたまには見直して、愛でる話です。
  10. 10. Fusic Co., Ltd. このLTについて 11 圧倒的な物量を誇るPHPの関数に限らないも ろもろをたまには見直して、愛でる話です。
  11. 11. Fusic Co., Ltd. 愛でる 12 ×
  12. 12. Fusic Co., Ltd. 愛でる 13 × ○
  13. 13. Fusic Co., Ltd. 愛でる 14 × ○ ○
  14. 14. Fusic Co., Ltd. 本日のお品書き 15 前菜 関数の話 関数群の話 関数の仕様の話 デフォルト設定の話 とある.ini変数の話
  15. 15. Fusic Co., Ltd. 16 前菜
  16. 16. Fusic Co., Ltd. 前菜 17 https://bugs.php.net/bug.php?id=71585
  17. 17. Fusic Co., Ltd. Nortonが誤ってPHPを削除する暴挙 18 https://bugs.php.net/bug.php?id=71585 php-win.exe deleted by Norton Security
  18. 18. Fusic Co., Ltd. 過去にも 19 https://bugs.php.net/bug.php?id=67930 Norton is classifying this release as insecure and is deleted all file dll and exe files.
  19. 19. Fusic Co., Ltd. 20 getimagesize
  20. 20. Fusic Co., Ltd. getimagesize 21 getimagesize(string $filename) 画像の大きさをファイル名から取得する
  21. 21. Fusic Co., Ltd. getimagesize 22 getimagesize(string $filename) 画像の大きさをファイル名から取得する list($width, $height, $type, $attr) = getimagesize(“/path/to/image.jpg”);
  22. 22. Fusic Co., Ltd. getimagesizefromstring 23 getimagesizefromstring(string $filename) 画像の大きさを文字列から取得する(>=PHP5.4)
  23. 23. Fusic Co., Ltd. getimagesizefromstring 24 getimagesizefromstring(string $filename) 画像の大きさを文字列から取得する(>=PHP5.4) $image = file_get_contents(“/path/to/image.jpg”);
  24. 24. Fusic Co., Ltd. getimagesizefromstring 25 getimagesizefromstring(string $filename) 画像の大きさを文字列から取得する(>=PHP5.4) $image = file_get_contents(“/path/to/image.jpg”); list($width, $height, $type, $attr) = getimagesizefromstring($image);
  25. 25. Fusic Co., Ltd. getimagesizefromstring 26 getimagesizefromstring(string $filename) 画像の大きさを文字列から取得する(>=PHP5.4) $image = file_get_contents(“/path/to/image.jpg”); list($width, $height, $type, $attr) = getimagesizefromstring($image); 長。
  26. 26. Fusic Co., Ltd. 27 is_xxx
  27. 27. Fusic Co., Ltd. is_xxx 28
  28. 28. Fusic Co., Ltd. is_xxx 29 is_array - 変数が配列かどうかを検査する is_bool - 変数が boolean であるかを調べる is_callable - 引数が、関数としてコール可能な構造であるかどうか調べる is_double - is_float のエイリアス is_float - 変数の型が float かどうか調べる is_int - 変数が整数型かどうかを検査する is_integer - is_int のエイリアス is_long - is_int のエイリアス is_null - 変数が NULL かどうか調べる is_numeric - 変数が数字または数値形式の文字列であるかを調べる is_object - 変数がオブジェクトかどうかを検査する is_real - is_float のエイリアス is_resource - 変数がリソースかどうかを調べる is_scalar - 変数がスカラかどうかを調べる is_string - 変数の型が文字列かどうかを調べる
  29. 29. Fusic Co., Ltd. is_xxx 30 is_array - 変数が配列かどうかを検査する is_bool - 変数が boolean であるかを調べる is_callable - 引数が、関数としてコール可能な構造であるかどうか調べる is_double - is_float のエイリアス is_float - 変数の型が float かどうか調べる is_int - 変数が整数型かどうかを検査する is_integer - is_int のエイリアス is_long - is_int のエイリアス is_null - 変数が NULL かどうか調べる is_numeric - 変数が数字または数値形式の文字列であるかを調べる is_object - 変数がオブジェクトかどうかを検査する is_real - is_float のエイリアス is_resource - 変数がリソースかどうかを調べる is_scalar - 変数がスカラかどうかを調べる is_string - 変数の型が文字列かどうかを調べる 多。
  30. 30. Fusic Co., Ltd. is_xxx 31 is_array - 変数が配列かどうかを検査する is_bool - 変数が boolean であるかを調べる is_callable - 引数が、関数としてコール可能な構造であるかどうか調べる is_double - is_float のエイリアス is_float - 変数の型が float かどうか調べる is_int - 変数が整数型かどうかを検査する is_integer - is_int のエイリアス is_long - is_int のエイリアス is_null - 変数が NULL かどうか調べる is_numeric - 変数が数字または数値形式の文字列であるかを調べる is_object - 変数がオブジェクトかどうかを検査する is_real - is_float のエイリアス is_resource - 変数がリソースかどうかを調べる is_scalar - 変数がスカラかどうかを調べる is_string - 変数の型が文字列かどうかを調べる
  31. 31. Fusic Co., Ltd. xxxval 32
  32. 32. Fusic Co., Ltd. xxxval 33 doubleval - floatval のエイリアス floatval - 変数の float 値を取得する intval - 変数の整数としての値を取得する strval - 変数の文字列としての値を取得する
  33. 33. Fusic Co., Ltd. xxxval 34 doubleval - floatval のエイリアス floatval - 変数の float 値を取得する intval - 変数の整数としての値を取得する strval - 変数の文字列としての値を取得する boolval - 変数の boolean としての値を取得する ※ PHP5.5で追加された関数
  34. 34. Fusic Co., Ltd. boolval 35 echo '0: '.(boolval(0) ? 'true' : 'false')."¥n"; echo '42: '.(boolval(42) ? 'true' : 'false')."¥n"; echo '0.0: '.(boolval(0.0) ? 'true' : 'false')."¥n"; echo '4.2: '.(boolval(4.2) ? 'true' : 'false')."¥n"; echo '"": '.(boolval("") ? 'true' : 'false')."¥n"; echo '"string": '.(boolval("string") ? 'true' : 'false')."¥n"; echo '"0": '.(boolval("0") ? 'true' : 'false')."¥n"; echo '"1": '.(boolval("1") ? 'true' : 'false')."¥n"; echo '[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."¥n"; echo '[]: '.(boolval([]) ? 'true' : 'false')."¥n"; echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."¥n";
  35. 35. Fusic Co., Ltd. boolval 36 0: false 42: true 0.0: false 4.2: true "": false "string": true "0": false "1": true [1, 2]: true []: false stdClass: true
  36. 36. Fusic Co., Ltd. mt_rand問題 37 http://sucrose.hatenablog.com/entry/2016/02/19/ 235506 「PHP の mt_rand() は一貫して壊れている (consistently broken)らしい」 本来の実装と少しだけ違うメルセンヌツイスタに なっている 修正のプルリクがmergeされたのちにrevertされる 「後方互換性を壊す変更は議論してからmergeす べき」と言う理由
  37. 37. Fusic Co., Ltd. mt_rand問題 38 "Sure it's broken, but at least it's consistently broken!“
  38. 38. Fusic Co., Ltd. 愛でる(おさらい) 39
  39. 39. Fusic Co., Ltd. 愛でる(おさらい) 40 × ○ ○
  40. 40. Fusic Co., Ltd. 41 default_charset
  41. 41. Fusic Co., Ltd. default_charset 42 PHP >= 5.6.0 で、デフォルトが “UTF-8” になりました。 ※ PHP < 5.6.0 でのデフォルトは空でした。
  42. 42. Fusic Co., Ltd. default_charset 43 PHP >= 5.6.0 で、デフォルトが “UTF-8” になりました。 ※ PHP < 5.6.0 でのデフォルトは空でした。 Shift_JISとか、他の文字コードを同居させているような場合 に、さっくり文字化けたりします(metaタグで書いていても)。
  43. 43. Fusic Co., Ltd. default_charset 44 PHP >= 5.6.0 で、デフォルトが “UTF-8” になりました。 ※ PHP < 5.6.0 でのデフォルトは空でした。 Shift_JISとか、他の文字コードを同居させているような場合 に、さっくり文字化けたりします(metaタグで書いていても)。 Apacheであれば、.htaccessに php_value default_charset none とか書いて回避するといいんじゃないでしょうか。
  44. 44. Fusic Co., Ltd. 45 gc_maxlifetime
  45. 45. Fusic Co., Ltd. session.gc_maxlifetime 46 session.gc_maxlifetime セッションの保持時間
  46. 46. Fusic Co., Ltd. session.gc_maxlifetime 47 session.gc_maxlifetime セッションの保持時間 デフォルトは1440秒 (=24分)
  47. 47. Fusic Co., Ltd. session.gc_maxlifetime 48 Q. なぜ24分?
  48. 48. Fusic Co., Ltd. session.gc_maxlifetime 49 Q. なぜ24分? A. もともと1440分(=1日)だったのが、単位 だけ秒になって数値そのままとの噂 http://stackoverflow.com/questions/14703363/why-is-the- standard-session-lifetime-24-minutes-1440-seconds
  49. 49. Fusic Co., Ltd. 50 まとめ
  50. 50. Fusic Co., Ltd. まとめ 51 PHPに限った話ではないですが。 調べてみると新たな発見があって、役に立っ たりしますよ。
  51. 51. Fusic Co., Ltd. まとめ 52 PHPに限った話ではないですが。 調べてみると新たな発見があって、役に立っ たりしますよ。 あと、転んでも泣かない。
  52. 52. Fusic Co., Ltd. まとめ 53 PHPに限った話ではないですが。 調べてみると新たな発見があって、役に立っ たりしますよ。 あと、転んでも泣かない。愛でましょう。
  53. 53. Fusic Co., Ltd. ご清聴ありがとうございました。

×