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
PHP8.xの新機能を使ってより良いコードを書こう!
Search
Shunsuke Santo
February 15, 2023
Programming
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP8.xの新機能を使ってより良いコードを書こう!
Shunsuke Santo
February 15, 2023
Other Decks in Programming
See All in Programming
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
110
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
リアルな遅延を測る仕様
kota_yata
1
140
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
350
Hono + Inertia + React で LP を構築した話
oukayuka
2
200
新卒PdEのリアル
ryu1013
1
300
AIの中の人になってみる
htkym
0
160
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
120
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
140
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
200
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
New Earth Scene 8
popppiees
3
2.5k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
310
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Ethics towards AI in product and experience design
skipperchong
2
360
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
410
Google's AI Overviews - The New Search
badams
0
1.6k
Visualization
eitanlees
152
17k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Transcript
PHP8.xの新機能を使って より良いコードを書こう! 山藤駿亮 Qiita: @SanQ Twitter: @SAshunchan
PHPは7→8へ このLTではPHP8.0からの新機能を紹介
今回紹介する新機能 • コンストラクタ • 名前付き引数 • Match式
コンストラクタ(8.0~) <機能> • プロパティのアクセス権を引数内で 設定できる • プロパティへの代入をコンストラクタ の引数内で行える → コンストラクタにかける記述量が減少
例:string(10) "hello! PHP" を出力 PHP 7.4
例:string(10) "hello! PHP" を出力 PHP 8.0
名前付き引数 (8.0~) <機能> • メソッドの引数に名前を付けられる • メソッドの引数の順序を守らなくても良い • デフォルトの値がある引数は実行時に 値を入れる必要がない → 使用される引数の内容がより分かりや
すい
例:全ての引数を合計した結果を出力 PHP 7.4 PHP 8.0
名前付き引数の注意点 名前付き引数を使用した場合、その後の 引数も名前付き引数を使用しなくてはな らない 上の結果 Error: Cannot use positional argument
after named argument
Match式 (8.0~) <機能> • 条件分岐を文ではなく式として処理する • 条件部分に条件外の値が来た場合エ ラーを吐く • 値の比較は厳密な比較 → 少ない記述かつ厳密な比較で条件分
岐を実装可能になった
例:$numberの値によって$resultの値を変更 PHP 7.4 PHP 8.0
Match式の注意点 • switchは緩やかな比較である一方で Match式は厳密な比較。※ • match式内部で式の実行はできない → switchからmatch式に書き換える際は 注意が必要 ※引数にtrueを入れることでmatch式でも緩やかな比較が可能
最後に… • より柔軟な型の定義やコードの短縮が 可能に! • パフォーマンスが向上! 一部の仕様が変更しているためバージョ ンアップの際は公式のドキュメントを参照 することが重要
参考資料 PHP Supported Versions (https://www.php.net/supported-versions.php) PHP8 released(https://www.php.net/releases/8.0/ja.php) PHP match() (https://www.php.net/manual/ja/control-
structures.match.php) Qiita @rana_kualu 【PHP8.0】PHP8.0の新機能 (https://qiita.com/rana_kualu/items/a6601b49e0591eb42200) PHP 7.4.x から PHP 8.0.x への移行(https://www.php.net/migration80)
ご清聴ありがとうございました! 今日の内容の詳細や追加 情報を記事にしています! (右のQRまたは https://qiita.com/SanQ/ite ms/f8453d6a7cbac6852312)