Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ここが変だよPHP(褒め言葉) 入門編 / The good thing about PHP ...
Search
宮城築
February 12, 2024
880
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ここが変だよPHP(褒め言葉) 入門編 / The good thing about PHP : An introduction
宮城築
February 12, 2024
More Decks by 宮城築
See All by 宮城築
プルリクエストがマージできない / Cannot merge pull requests
kizuku_miyagi
3
600
20240510_DDDとぼんやり向き合ってみる / Let's face DDD in a dim way.
kizuku_miyagi
1
61
強いチーム作りに向けて 個人ができること / What individuals can do to build a strong team
kizuku_miyagi
2
680
あの時、Java から PHP へ / Converting from Java to PHP
kizuku_miyagi
4
640
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
The Language of Interfaces
destraynor
162
27k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Bash Introduction
62gerente
615
220k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Crafting Experiences
bethany
1
340
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
How to train your dragon (web standard)
notwaldorf
97
6.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Transcript
ここが変だよ PHP(褒め言葉) 入門編 BABY JOB ミヤギ
特徴 ・2023 年 6 月 BABY JOB に入社 ・沖縄 からフルリモートで参画
・保活サービス を開発中 ・BUMP OF CHICKEN が好き ・PM と保育園のお弁当に挑戦中 自己紹介 宮城 築 ミヤギ@3歳児の父エンジニア|BABYJOB @KizuMiyagi old now
すべての人が子育てを楽しいと思える社会 乳児期 幼児期 学童期 妊娠・出産 産後うつ 保活が大変 いやいや期 学童不足 小一の壁
子育てには課題がたくさん・・・ 育児と子育て の両立が大変 保活(保育園探し)をサポート 保育園の準備をサポート
入社して初めて PHP のソースを見たミヤギ
バグ 見つけました😎
public function __construct( private readonly hogeInterface $hoge, private readonly fugaInterface
$fuga, ) { parent::__construct(); }
public function __construct( private readonly hogeInterface $hoge, private readonly fugaInterface
$fuga, ) { parent::__construct(); } コピペした時のカンマを 消し忘れてる! あるあるだよね!
public function __construct( private readonly hogeInterface $hoge, private readonly fugaInterface
$fuga, ) { parent::__construct(); } コピペした時のカンマを 消し忘れてる! あるあるだよね! 末尾カンマ でした😇
末尾カンマ(ケ◦カンマ) 末尾カンマとは? 配列や関数の引数など、リストの最後に配置されるカンマ 何がいいの? リストの増減に関する修正が簡単(追加も削除も1行で済む) 対応している言語 JavaScript、Python、Rust、Swift・・・
public function __construct( private readonly hogeInterface $hoge, // ← 末尾カンマがないと
private readonly fugaInterface $fuga // 2 行を修正する ) { parent::__construct(); }
末尾カンマ(ケ◦カンマ) 末尾カンマとは? 配列や関数の引数など、リストの最後に配置されるカンマ 何がいいの? リストの増減に関する修正が簡単(追加も削除も1行で済む) 対応している言語 JavaScript、Python、Rust、Swift・・・
末尾カンマ(ケ◦カンマ) 末尾カンマとは? 配列や関数の引数など、リストの最後に配置されるカンマ 何がいいの? リストの増減に関する修正が簡単(追加も削除も1行で済む) 対応している言語 JavaScript、Python、Rust、Swift・・・ 実は Java でも配列や列挙
型なら使える
マニュアルを読んで変なところを集めてみた
論理演算子
// 論理積 echo (false and true) ? 'No, It’s not
me..' : 'It’s me !!'; // 論理和 echo (false or true) ? 'It’s me !!' : 'No, It’s not me..'; // 排他的論理和 echo (false xor true) ? 'It’s me !!' : 'No, It’s not me..';
英語で 書けるの?
何が違うの? 優先順位が異なる( and と or の優先順位は && と || よりも低い)
何がいいの? 視覚的にわかりやすい 対応している言語 Perl、Python、Ruby・・・ 論理演算子 参考:https://www.php.net/manual/ja/language.operators.logical.php
浮動小数点数
引用:https://www.php.net/manual/ja/language.types.float.php
引用:https://www.php.net/manual/ja/language.operators.logical.php
小数使えない?
なぜ比較できないの? 無限に続く小数を有限のビットで表現しているため → PHP に限らず どうしたら良いの? 丸め誤差の上界(※)や任意精度数学関数ライブラリを使用する 浮動小数点数の計算が得意な言語 Python、Java、C#・・・ 浮動小数点数 参考:https://www.php.net/manual/ja/language.types.float.php
引用:https://www.php.net/manual/ja/language.types.float.php
時間がない!!
• Heredoc(ヒアドキュメント)と Nowdoc → 文字列を定義する際に改行やインデントを活用できる • パース → 文字列内の配列やクラスもパースできる •
continue → switch 文をループ処理とみなして利用することができる 残りは箇条書きでご紹介
まとめ
• 様々な言語の良さを取り入れてる • PHP マニュアルが充実してる PHP が好きになってきた
ご清聴ありがとうございました
おまけ
PHP の良さを ChatGPT に聞いた らたくさん語って くれました
ヒアドキュメントと Nowdoc
private const SELECT_PHP_CONFERENCE_KANSAI_QUERY = <<<SQL select id, name -- kano,
katsusa … from php_conference_kansai_tbl SQL;
SQL 書きやすっ
ヒアドキュメントとは?(<<<SQL) 改行を含む文字列を定義する記法、文字列内の変数を展開する 何がいいの? SQL などの長い文字列を整形した状態で定義可能 対応している言語 Perl、Python、Ruby、Bash(シェルスクリプト)・・・ ヒアドキュメント( Heredoc )
参考:https://www.php.net/manual/ja/language.types.string.php
Nowdoc とは?(<<<'SQL') 改行を含む文字列を定義する記法、文字列内の変数を展開しない 何がいいの? SQL などの長い文字列を整形した状態で定義可能 対応している言語 Python、JavaScript、Ruby・・・ Nowdoc 参考:https://www.php.net/manual/ja/language.types.string.php