PHPの変数がヤバい!

PHPの変数名がヤバい!

昔、「レガシーでなんか作ってみてよ」と言われて

<?php
$arr = array(
    'hello' => 'world!!'
);
foreach ($arr as $key => $val) $$key = $val;


こんな感じのコードを書いて配列の添字を変数名にしたりとかをしていて
「配列のキーにはスペースが入るけど、変数名にした時に怒られるからこのコード使えないよ
というかextract関数使えよ」

と言われた事があり
言われてみたらそうだなぁと以降、二度とこんなコードを書く事はなくなったんですが

鵜呑みにして検証してなくて3年越しぐらいになるけど。。。


PHPの変数名にスペース使えるじゃん

ご覧頂こう

<?php
${'Hello World!!'} = 'Good bye World!!';
echo ${'Hello World!!'};

これを実行すると「Good bye World!!」と表示される。
使いどころはわからないけど。。。

ちなみに先頭数字の変数名も

<?php
${1} = 'Hello World!!';
echo ${1};

これでいけてしまったりします。
ただし、$1とかって変数名を指定すると怒られます。