1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

配列代入殺すマン IDEの正規表現でPHPの配列への順次代入を一括宣言に書き換える手伝いをする正規表現

Posted at

そんなタイトル(前半部)の古いメモが整理中のローカルで見つかったのでWebに保存です。

言うほど殺せないのはご愛嬌。
配列代入という呼び方も謎。

search
\$(?:.*?)\[(.*?)\]\s*=\s*(.*);
replace
$1 => $2,

使い方

たとえば、

image.png
(Calssになってる!!)

PhpStormでこんなコードを見かけたとする。
配列の宣言方法が文化的なお作法になっており、かつコードの編集権限があり自分の美意識に反するとき(どんなときだ

image.png

Ctrl + R

で置換機能を呼びだしReplace allすると

image.png

ここまで置換されるので、後は$a = [];];を切り取って貼り付けて自動整形にかければ

image.png

ここまで持ってこれる。

関連

PHPの配列の作成は初期化と代入のどちらが速いのか - Qiita

書き換える理由付けとして速度を計測しました。


array(.*)[.*]のショートハンド化する正規表現もどこかに書いた気がするが、自動整形で変換できるので需要はない。


今なら静的解析で自動で変換できないものか。


pushや上書きなどに対してセーフティでは無いはずなので、使うなら選択範囲を置換でご安全に。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?