Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
かんたん! PHP7の便利な演算子
Search
いはらオジサン
May 29, 2019
Programming
0
150
かんたん! PHP7の便利な演算子
「第138回 PHP勉強会@東京」にて、発表をさせて頂いたLT(ライトニングトーク)資料です。
いはらオジサン
May 29, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
270
Implementation Patterns
denyspoltorak
0
120
AIコーディングエージェント(Manus)
kondai24
0
220
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
4k
SwiftUIで本格音ゲー実装してみた
hypebeans
0
500
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
gunshi
kazupon
1
120
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
300
マスタデータ問題、マイクロサービスでどう解くか
kts
0
130
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Graviton と Nitro と私
maroon1st
0
140
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
640
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
200
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
28
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
92
What's in a price? How to price your products and services
michaelherold
246
13k
Music & Morning Musume
bryan
46
7k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Between Models and Reality
mayunak
0
150
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
170
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
The untapped power of vector embeddings
frankvandijk
1
1.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Transcript
かんたん! PHP7の便利な演算子
自己紹介 • 名前 : いはらオジサン • 職業 : ぷろぐらまー •
PHPer : 約10ヶ月
本日のアジェンダ • 演算子の紹介と使用例 ◦ (PHP7.0)宇宙船演算子(<=>) ◦ (PHP7.0)Null合体演算子(??) • おまけ ◦
(PHP7.4)Null合体代入演算子(??=) • まとめ
宇宙船演算子とは
PHP7.0の新機能
2つの式の 大小関係を評価できる 比較演算子
<=> ↑こんなやつ
どんな動きをするのか
整数の場合 1 <=> 1; 戻り値 : 0 1 <=> 2;
戻り値 : -1 2 <=> 1; 戻り値 : 1
浮動小数点の場合 1.5 <=> 1.5; 戻り値 : 0 1.5 <=> 2.5;
戻り値 : -1 2.5 <=> 1.5; 戻り値 : 1
文字列の場合 "a" <=> "a"; 戻り値 : 0 "a" <=> "b";
戻り値 : -1 "b" <=> "a"; 戻り値 : 1
使用例
usort($a, function($a, $b) { if ($a == $b) return 0;
return ($a < $b) ? -1 : 1; });
宇宙船演算子なら
usort($a, function($a, $b) { return $a <=> $b; });
エルビス演算子を 組み合わせると
usort($a, function($a, $b) { return $a->name <=> $b->name ?: $b->birthday
<=> $a->birthday ?: $a->age <=> $b->age; });
usort($a, function($a, $b) { return 名前の昇順 ?: 誕生日の降順 ?: 年齢の昇順;
});
複雑なソート処理が かんたんにできる
NEXT
Null合体演算子とは
PHP7.0の新機能
未定義変数に 初期値を与える為の 条件演算子
?? ↑こんなやつ
どんな動きをするのか
$a が定義されている場合 $a = 'ある'; $b = $a ?? 'ない';
echo $b; // ある
$a が定義されていない場合 $b = $a ?? 'ない'; echo $b;
// ない
同じ動きをしている $b = isset($a) ? $a : 'ない';
演算子を連結できる $c = $a ?? $b ?? 'ない';
使用例
<input type="text" name="test" value=" <?php if (isset($SESSION['test'])) { echo $SESSION['test'];
} else { echo ""; } ?> ">
Null合体演算子なら
<input type="text" name="test" value=" <?php echo $SESSION['test'] ?? ""; ?>">
とても読みやすい
みんな しあわせ
View で 変数を展開する際に 大活躍できる
おまけ
PHP7.4の新機能 (PHP RFCより)
Null合体代入演算子
Null合体演算子と 代入演算子の 省略系演算子
??= ↑こんなやつ
どんな動きをするのか
さらに短く書ける! $a = 'ある'; $b ??= $a; echo $b;
// ある
Model で 変数を代入する際に 便利かも
まとめ
まとめ • 宇宙船演算子(<=>)は、 複雑なソート処理をかんたんにできる。 • Null合体演算子(??)は、 View で変数を展開する際に便利。 • Null合体代入演算子(??=)は、
Model で変数を展開する際に便利。