Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ここが変だよPHP(褒め言葉) 入門編 / The good thing about PHP ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
宮城築
February 12, 2024
860
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
590
20240510_DDDとぼんやり向き合ってみる / Let's face DDD in a dim way.
kizuku_miyagi
1
58
強いチーム作りに向けて 個人ができること / What individuals can do to build a strong team
kizuku_miyagi
2
670
あの時、Java から PHP へ / Converting from Java to PHP
kizuku_miyagi
4
630
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
470
We Are The Robots
honzajavorek
0
300
Crafting Experiences
bethany
1
250
Leo the Paperboy
mayatellez
8
2.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
420
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
400
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
670
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
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