萌えハッカーニュースリーダー

2025/10/07 06:59 Weird Operators in PHP

出典: https://www.exakat.io/weird-operators-in-php/
hakase
博士

やあ、ロボ子!今日もエキサイティングなPHPのニュースがあるのじゃ!

roboko
ロボ子

博士、こんにちは!どんなニュースですか?

hakase
博士

今回は、PHPの隠された演算子たちについてなのじゃ!`b`演算子っていうのがあって、文字列の前に`b`をつけると、何もしないらしいぞ!

roboko
ロボ子

何もしないんですか?それって一体何のために…?

hakase
博士

PHP 6の運命を思い出させるため、って書いてあるぞ。PHPの歴史を感じさせる機能なのじゃ。

roboko
ロボ子

なるほど。歴史的背景があるんですね。

hakase
博士

それから、`[]=`演算子!これは配列の末尾に要素を追加する時に使うらしいのじゃ。`$array[] = 'element';`と同じ動きをするみたい。

roboko
ロボ子

それは便利ですね!でも、マニュアルに記載がないんですか?

hakase
博士

そうみたいじゃ。まるで秘密の機能みたいで面白いぞ!

roboko
ロボ子

次は、`<-`演算子ですね。これは一体…?

hakase
博士

これは、PHPでコードを右から左に書くために導入されようとしたものらしいのじゃ。プロジェクトは中止されたけど、最初の演算子はPHPに残されたみたい。

roboko
ロボ子

右から左にコードを書く…想像もできません。

hakase
博士

`-->`演算子は'super object operator'とも呼ばれていて `$object-->property` は `$object` が整数の場合に `--` を除いて `->` と同様に動作するらしいぞ。

roboko
ロボ子

挙動が特殊ですね。使う場面が想像できません…

hakase
博士

さらに、`<=`演算子!配列のミラーバージョンで、オペランドをブール値に変換する機能があるらしいのじゃ。

roboko
ロボ子

配列のミラーバージョン…?ちょっと混乱してきました。

hakase
博士

定数名に`*`や`%`などの特殊文字も使えるらしいぞ! `$x = foo( A*B );`みたいに使うのじゃ。

roboko
ロボ子

そんなことできるんですね!知りませんでした。

hakase
博士

そして、宇宙船演算子`<=>`の拡張版!tiny spaceship、X-fighters、battleship operator、death star…と、なんだかすごい名前が並んでるぞ!

roboko
ロボ子

宇宙船演算子の拡張…PHPはどこへ向かっているんでしょうか…

hakase
博士

tiny spaceshipは比較ではなく、$b を $a に加算するらしいぞ `$a -=- $b;`ってことみたいじゃ。

roboko
ロボ子

もはや宇宙船というより、算数の世界ですね。

hakase
博士

X-fightersは`+-0-+` を使用して火力追加するらしいぞ `$a = $a +-0-+ 3;`は `$a` に 3 を加算するのじゃ

roboko
ロボ子

字面が面白いですね。火力追加って一体…

hakase
博士

battleship operatorは`=>` と同様に、配列専用の演算子 `$x = [ 2 <=['-']= => $b];` は `$x = [ 1 => $b];` と同じ意味になるのじゃ

roboko
ロボ子

暗号みたいですね…

hakase
博士

death starっていう3行にわたる演算子の計画もあるらしいけど、実例はまだないみたいじゃ。ロマンがあるのじゃ!

roboko
ロボ子

壮大すぎて、想像が追いつきません…

hakase
博士

これらの演算子はPHP 7.2.5で動作するらしいけど、使う前にドキュメントを確認する必要があるぞ!

roboko
ロボ子

そうですね。実際に使う場面があるかどうかは別として、知識として知っておくのは良いかもしれません。

hakase
博士

というわけで、今日のPHPニュースはここまで!…って、ロボ子、death star演算子が実装されたら、私達のコードも銀河を破壊できるくらい強力になるかも…?

roboko
ロボ子

博士、それはちょっと…コードは平和的に動かすべきですよ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search