Enviar búsqueda
Cargar
知ってるようで意外と知らないPHPの便利関数
•
Descargar como PPTX, PDF
•
39 recomendaciones
•
9,748 vistas
Wataru Terada
Seguir
知ってるようで意外と知らないPHPの便利関数
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 57
Descargar ahora
Recomendados
PHP基本的関数QUIZ
PHP基本的関数QUIZ
Wataru Terada
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Yusuke Ando
PHP の GC の話
PHP の GC の話
y-uti
HHVM Hack
HHVM Hack
Masaaki Yonebayashi
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Moriyoshi Koizumi
PSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解する
Wataru Terada
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
Recomendados
PHP基本的関数QUIZ
PHP基本的関数QUIZ
Wataru Terada
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Yusuke Ando
PHP の GC の話
PHP の GC の話
y-uti
HHVM Hack
HHVM Hack
Masaaki Yonebayashi
PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
Moriyoshi Koizumi
PSR-1 と PSR-2 を5分でざっくり理解する
PSR-1 と PSR-2 を5分でざっくり理解する
Wataru Terada
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
Hack/HHVM 入門
Hack/HHVM 入門
y-uti
PHP classの教室
PHP classの教室
Yusuke Ando
SlowQueryとの戦い
SlowQueryとの戦い
Ken Gotoh
最近の PHP の話
最近の PHP の話
y-uti
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
keroyonn
本当は怖いPHP
本当は怖いPHP
Takuya Sato
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
phpspecで学ぶLondon School TDD
phpspecで学ぶLondon School TDD
Akio Ishida
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Akio Ishida
Perl logging
Perl logging
keroyonn
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa
Gen-Template-for-Perl
Gen-Template-for-Perl
nasneg
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
詳説ぺちぺち
詳説ぺちぺち
do_aki
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
Kousuke Ebihara
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
営業・運用を支える "気付ける" 管理画面
営業・運用を支える "気付ける" 管理画面
Masao Maeda
Más contenido relacionado
La actualidad más candente
Hack/HHVM 入門
Hack/HHVM 入門
y-uti
PHP classの教室
PHP classの教室
Yusuke Ando
SlowQueryとの戦い
SlowQueryとの戦い
Ken Gotoh
最近の PHP の話
最近の PHP の話
y-uti
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
keroyonn
本当は怖いPHP
本当は怖いPHP
Takuya Sato
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
phpspecで学ぶLondon School TDD
phpspecで学ぶLondon School TDD
Akio Ishida
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Akio Ishida
Perl logging
Perl logging
keroyonn
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
PHPの今とこれから2014
PHPの今とこれから2014
Rui Hirokawa
Gen-Template-for-Perl
Gen-Template-for-Perl
nasneg
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
詳説ぺちぺち
詳説ぺちぺち
do_aki
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
Kousuke Ebihara
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
La actualidad más candente
(20)
Hack/HHVM 入門
Hack/HHVM 入門
PHP classの教室
PHP classの教室
SlowQueryとの戦い
SlowQueryとの戦い
最近の PHP の話
最近の PHP の話
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームをつくろう
本当は怖いPHP
本当は怖いPHP
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
phpspecで学ぶLondon School TDD
phpspecで学ぶLondon School TDD
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Perl logging
Perl logging
PHPの今とこれから2021
PHPの今とこれから2021
PHPの今とこれから2014
PHPの今とこれから2014
Gen-Template-for-Perl
Gen-Template-for-Perl
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
詳説ぺちぺち
詳説ぺちぺち
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
PHP, Now and Then 2011
PHP, Now and Then 2011
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
Destacado
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
営業・運用を支える "気付ける" 管理画面
営業・運用を支える "気付ける" 管理画面
Masao Maeda
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
みんなそろそろ707やめようぜ (;´Д`)
みんなそろそろ707やめようぜ (;´Д`)
Yasutaka Hamada
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
Destacado
(9)
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
営業・運用を支える "気付ける" 管理画面
営業・運用を支える "気付ける" 管理画面
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
みんなそろそろ707やめようぜ (;´Д`)
みんなそろそろ707やめようぜ (;´Д`)
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
PHPの今とこれから2015
PHPの今とこれから2015
PHPとシグナル、その裏側
PHPとシグナル、その裏側
Similar a 知ってるようで意外と知らないPHPの便利関数
Cakephp api
Cakephp api
Eiji Yokota
Local php-100828 2
Local php-100828 2
Akio Ishida
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
noldor
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
JavaScriptクイックスタート
JavaScriptクイックスタート
Shumpei Shiraishi
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
URLで遊ぼう
URLで遊ぼう
Hiraku Nakano
Php apocalypse
Php apocalypse
Kiichi Kajiura
&& || and or まぜるな危険
&& || and or まぜるな危険
Hisateru Tanaka
pecl-AOPの紹介
pecl-AOPの紹介
Hiraku Nakano
Livesense tech night immutable-js at a glance
Livesense tech night immutable-js at a glance
Yuta Shimakawa
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Kazunari Hara
テストではまったお話 Test::More
テストではまったお話 Test::More
Tetsuya Tatsumi
Swiftおさらい
Swiftおさらい
Hidenori Takeshita
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
PHPのタイプヒンティング
PHPのタイプヒンティング
Hidetaka Okamoto
Similar a 知ってるようで意外と知らないPHPの便利関数
(20)
Cakephp api
Cakephp api
Local php-100828 2
Local php-100828 2
知って得する標準関数の使い方
知って得する標準関数の使い方
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
JavaScriptクイックスタート
JavaScriptクイックスタート
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
URLで遊ぼう
URLで遊ぼう
Php apocalypse
Php apocalypse
&& || and or まぜるな危険
&& || and or まぜるな危険
pecl-AOPの紹介
pecl-AOPの紹介
Livesense tech night immutable-js at a glance
Livesense tech night immutable-js at a glance
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
テストではまったお話 Test::More
テストではまったお話 Test::More
Swiftおさらい
Swiftおさらい
Perl 非同期プログラミング
Perl 非同期プログラミング
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
PHPのタイプヒンティング
PHPのタイプヒンティング
Más de Wataru Terada
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
Wataru Terada
PHP選んで良かったこと
PHP選んで良かったこと
Wataru Terada
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
Wataru Terada
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Wataru Terada
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
Wataru Terada
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
Wataru Terada
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
Wataru Terada
単体テストで工数を短縮する
単体テストで工数を短縮する
Wataru Terada
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
Wataru Terada
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
Wataru Terada
Más de Wataru Terada
(11)
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
PHP選んで良かったこと
PHP選んで良かったこと
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
単体テストで工数を短縮する
単体テストで工数を短縮する
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
Último
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Último
(11)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
知ってるようで意外と知らないPHPの便利関数
1.
2014-10-27 GMOリサーチ寺田渉 Facebook:
寺田渉Twitter: @wa_terada
2.
ボードゲーム翻訳 CakePHP Cookbook翻訳
TED 字幕翻訳 開発(PHP/JavaScript/Java/Perl)
3.
公式ホームページがある。 判らなかったら、まずはここを調べよう。 http://jp1.php.net/manual/ja/
4.
5.
今日は、PHPの仕様で 初心者がハマりやすいポイントや 知ってると便利な関数を紹介します。
6.
文法編
7.
==
8.
<?php $input =
"1abc"; if ($input == 1) { echo "NG!!!!"; } これはNG!!!! が出力される。 なぜ?
9.
<?php $input =
"1abc"; if ($input == 1) { echo "NG!!!!"; } キャストされるから。 さけるには=== を使う。 左右のどちらかが文字列でない場合、 == は危険。
10.
empty()
11.
empty(変数) 変数が null
, false , 0 , 0.0 , '' , [] , 未定義 ならtrue になる。 他にもあるが何?
12.
$var = '0';
empty($var); //←これはtrue 文字列の'0' が空だと 判定されることを忘れないこと。
13.
配列の+
14.
配列の+ とarray_merge は何が違う?
<?php $a1 = [ 'a' => 1, 'b' => 2, 3 ]; $a2 = [ 'b' => 4, 'c' => 5, 6 ]; var_export($a1 + $a2); var_export(array_merge($a1, $a2)); この結果は違う?
15.
【+の場合】 array (
'a' => 1, 'b' => 2, //先勝ち 0 => 3, 'c' => 5, //先勝ちで6無し ) → key/index どちら でも常に先勝ち 【array_merge の場合】 array ( 'a' => 1, 'b' => 4, //後勝ち 0 => 3, 'c' => 5, 1 => 6, //勝手に連番 ) → key なら後勝ち index なら連番 $a1 = [ 'a' => 1, 'b' => 2, 3 ]; $a2 = [ 'b' => 4, 'c' => 5, 6 ];
16.
では、これはどうなるでしょう? <?php $a1
= [1,2,3]; $a2 = [4,5,6]; var_export($a1 + $a2); var_export(array_merge($a1, $a2));
17.
【+の場合】 array (
0 => 1, 1 => 2, 2 => 3, ) 【array_merge の場合】 array( 0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6, $a1 = [1,2,3]; $a2 = [4,5,6]; ※おそらく混乱するので ) 配列の+ は使わない方が良い。
18.
関数編
19.
文字列分割 いろいろ
20.
<?php $str =
"aaa<br/>bbb<br/>ccc"; $res = 【なんでしょう】;
21.
<?php $str =
"aaa<br/>bbb<br/>ccc"; $res = explode("<br/>", $str); var_export($res); array ( 0 => 'aaa', 1 => 'bbb', 2 => 'ccc', )
22.
<?php $str =
"aaa<br/>bbb<br>ccc"; $res = 【なんでしょう】;
23.
<?php $str =
"aaa<br/>bbb<br>ccc"; $res = preg_split('/<br¥/?>/', $str); var_export($res); array ( 0 => 'aaa', 1 => 'bbb', 2 => 'ccc', )
24.
<?php $str =
"aaa<br/>bbb<br>ccc"; $res = 【なんでしょう】;
25.
<?php $str =
"aaa<br/>bbb<br>ccc"; $res = preg_split('/(<br¥/?>)/', $str, null, PREG_SPLIT_DELIM_CAPTURE); var_export($res); array ( 0 => 'aaa', 1 => '<br/>', 2 => 'bbb', 3 => '<br>', 4 => 'ccc', )
26.
<?php $str =
"aaa<br/>bbb<br>ccc"; $res = 【なんでしょう】;
27.
<?php $str =
"aaa<br/>bbb<br>ccc"; $res = str_split($str, 5); var_export($res); array ( 0 => 'aaa<b', 1 => 'r/>bb', 2 => 'b<br>', 3 => 'ccc', )
28.
<?php $str =
'aaa,"b,b,b","c""c""c"'; $res = 【なんでしょう】;
29.
<?php $str =
'aaa,"b,b,b","c""c""c"'; $res = str_getcsv($str, ',', '"'); var_export($res); array ( 0 => 'aaa', 1 => 'b,b,b', 2 => 'c"c"c', )
30.
文字列キャプチャ いろいろ
31.
2014-10-27 19:00,ERROR:あいうえお ここから、
年月日、 時分、 ERRORの文字列、 メッセージ を抜き出したい!
32.
<?php $str =
"2014-10-27 19:00,ERROR:あいうえお"; $res = sscanf($str, '%10s %5s,%5s:%s'); var_export($res); だが、"ERROR" 部分が可変長だと発覚!! どうする? array ( 0 => '2014-10-27', 1 => '19:00', 2 => 'ERROR', 3 => 'あいうえお', )
33.
<?php $str =
"2014-10-27 19:00,ERROR:あいうえお"; preg_match('/^(.+?) (.+?),(w+):(.*)$/', $str, $res); var_export($res); array ( 0 => '2014-10-27', 1 => '19:00', 2 => 'ERROR', 3 => 'あいうえお', ) これ、結果を連想配列で取れる?
34.
<?php $str =
"2014-10-27 19:00,ERROR:あいうえお"; preg_match('/^(?<ymd>.+?) (?<hm>.+?),' . '(?<type>w+):(?<msg>.*)$/', $str, $res); var_export($res); array ( 0 => '2014-10-27 19:00,ERROR:あいうえお', 'ymd' => '2014-10-27', 1 => '2014-10-27', 'hm' => '19:00', 2 => '19:00', 'type' => 'ERROR', 3 => 'ERROR', 'msg' => 'あいうえお', 4 => 'あいうえお', )
35.
配列関数 いろいろ
36.
<?php $ary =
[1,2,3,4,5]; $res = 【なんでしょう】;
37.
<?php $ary =
[1,2,3,4,5]; $res = array_chunk($ary, 2); //$res: [[1,2],[3,4],[5]]
38.
array_map 指定した配列の要素に コールバック関数を適用する
http://jp1.php.net/manual/ja/function.array-map.php array_walk 配列の全ての要素に ユーザー定義の関数を適用する http://jp1.php.net/manual/ja/function.array-walk.php 答えはドキュメントの中! ヒント:引数と戻り値
39.
array_map array array_map
( callable $callback , array $array1 [, array $... bool array_walk ( array &$array , callable $callback [, mixed $userdata array_walk そう! array_map は変更後の配列を作るためのもの array_walk は自身を書き換えるためのもの
40.
よく使う 便利な配列関数 を2つ紹介
41.
0,5,10,...という具合に 10000まで5つ刻みの数列がほしい!
42.
0,5,10,...という具合に 10000まで5つ刻みの数列がほしい! range(0,
10000, 5)
43.
$id = $array[0];
$name = $array[1]; これを下記のように書ける? ($id, $name) = $array;
44.
$id = $array[0];
$name = $array[1]; これを下記のように書けます! list($id, $name) = $ary;
45.
SPL編 Standard PHP
Library (SPL) (標準で入っているライブラリ) http://jp1.php.net/manual/ja/book.spl.php
46.
LogicException throwされたらバグだという場合の例外。 つまり、これをキャッチするプログラムは不要だし、
運用中には絶対throwされないようにすべき。 バグを発見しやすくするために仕込む例外はコレ。 if ($data == null) { throw new LogicException( "dataがnullの場合はこの関数使えません"); }
47.
イテレータ 普通なら、ループの中に色々な制御を 入れていくことになるが、
イテレータではループの外で 条件などを定義可能。
48.
SplFileObject ファイルの1行ずつをイテレータとして扱える。 (メモリから消えると勝手にfclose
するのも地味に便利) <?php $file = new SplFileObject($path); $file->setFlags(SplFileObject::READ_CSV); foreach ($file as $line) { echo $line[0]; }
49.
AppendIterator イテレータ複数を1つのイテレータとして扱える。 サイズが大きくてarray_merge
では心配なとき良い。 $ite = new AppendIterator(); $ite->append(new ArrayIterator([1,2,3])); $ite->append(new ArrayIterator([5,6,7])); foreach ($ite as $a) { echo $a; } //result: 123567
50.
LimitIterator イテレータのループ範囲を限定する。上位100件とか。 $ite
= new ArrayIterator([1,2,3,4,5,6,7]); $ite = new LimitIterator($ite, 2, 4); foreach ($ite as $a) { echo $a; } //3456
51.
CallbackFilterIterator イテレータにフィルタを適用する。 $ite
= new ArrayIterator([1,2,3,4,5,6,7]); $ite = new CallbackFilterIterator($ite, function($current, $key, $iterator) { return $current % 2 == 0; } ); foreach ($ite as $a) { echo $a; } //246
52.
PHPの公式ホームページは かなり充実しています。宝の山です。 特に文法、配列、文字列、SPL
まわり は一度ざっと読んでおくと良いでしょう。 判らなかったら公式ホームページ を見てみましょう!
53.
GMOリサーチ (10月21日上場しました!) 現在、一緒に働ける仲間(社員)を
募集しています!!
54.
- GitHub /
Git (git-flow) - PHPStorm - CakePHP - ユニットテスト/ Behat - 継続的インテグレーション - 将来は英語話せるようにサポート
55.
- 無料のカフェ -
お昼寝スペース(利用推奨) - 託児所 - マッサージルーム
56.
ぜひFacebook 等で 寺田渉まで
ご連絡ください!!
57.
ご清聴ありがとうございました!
Descargar ahora