@hakreの回答を補強するために、簡潔にするために引用符を失う可能性もあります
${1}
しかし残念ながら、それを文字列値と組み合わせることはできません。私はいくつかの実験を行いましたが、どうやらPHPは文字列または数値のいずれかを期待しているようです。そして、最終的に数値または文字列値を返すか、暗黙的にいずれかにキャストされる中括弧内で何でも実行できます。
<?php
function eight (){
return 8;
}
${7+'fr'} = ${7*'fr'+1} = ${'hi'.((string)8).'hi'} = ${7.8910} = ${eight()} = ${(eight()==true)+4} = 'hi';
var_dump(get_defined_vars());
出力
array(8) { ["_GET"]=> array(0) { }
["_POST"]=> array(0) { }
["_COOKIE"]=> array(0) { }
["_FILES"]=> array(0) { }
["7.891"]=> string(2) "hi"
["7"]=> string(2) "hi"
["1"]=> string(2) "hi"
["hi8hi"]=> string(2) "hi"
["8"]=> string(2) "hi"
["5"]=> string(2) "hi" }
さらに、私は何か面白いものを見つけました:
<?php
${false} = 'hi';
${true} = 'bye';
var_dump(get_defined_vars());
出力
array(6) { ["_GET"]=> array(0) { }
["_POST"]=> array(0) { }
["_COOKIE"]=> array(0) { }
[""]=> string(2) "hi"
["1"]=> string(3) "bye" }
つまりfalse
、0と1ではなく、空の文字列に評価されますtrue
。