$30 off During Our Annual Pro Sale. View Details »
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
これならできる!個人開発のすゝめ
tinykitten
PRO
0
130
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.8k
愛される翻訳の秘訣
kishikawakatsumi
3
350
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
150
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.3k
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
900
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4k
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.4k
JETLS.jl ─ A New Language Server for Julia
abap34
2
460
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
200
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
380
Featured
See All Featured
Abbi's Birthday
coloredviolet
0
3.8k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
130
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Embracing the Ebb and Flow
colly
88
4.9k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
330
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
66
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
My Coaching Mixtape
mlcsv
0
13
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 で変数を展開する際に便利。