2022/04/29
意外と知らない?!PHPの変数についてを3選紹介!
意外と知らないシリーズです。
今回は変数に関する意外知らない便利な使い方を3つご紹介します!
では、さっそく….
文字列の中に変数をセット
一般的な使い方
$num = 65536;
$string = "ここは文字列で{$num}は変数の値です";
echo $string;
↓ 結果
ここは文字列で65536は変数の値です
“ダブルクォーテーションで囲えば、文字列の中に変数をセットする事が出来ます。
こちらは知っている人が多いかと思いますが、定数が使えないと思っている方は多いのではないでしょうか?
定数なども含めた使い方
define('TEST_NUM', 65536);
$_ = function($s){ return $s; };
$string = "ここは文字列で{$_(TEST_NUM)}は変数の値です";
echo $string;
↓ 結果
ここは文字列で65536は変数の値です
変数に関数をセットすれば文字列の中でも実行する事が出来ます。
可変プロパティ・ファンクション
動的クラスを使用する際に、変数に入っている文字列の関数名を実行したい時ありませんか?
次のような例です。
class TestClass
{
public function example()
{
// 何かしらの処理
}
}
$str = 'example';
$obj = new TestClass();
// ここで$strに入っている文字列の関数を実行!
$obj->$str();
こちらについても知っている人が多いかと思いますが、意外にも配列に入っている文字列を使用する方法は知らない方が多いかもしれません。
配列に入っている文字列の関数名を実行
class TestClass
{
public function example()
{
// 何かしらの処理
}
}
$arr = ['key' => 'example'];
$obj = new TestClass();
// ここで$arr['key']に入っている文字列の関数を実行!
$obj->{$arr['key']}();
このように{}波括弧で囲ってあげると実行されます。
なお、次のように文字列の連結をして関数の実行もできちゃいます。
$obj->{$str . $st2}();
可変変数
可変変数の説明は文章で行うより、見て貰った方が早いので次の例をご覧ください。
$a = 'foo';
$$a = 'example';
echo $foo;
↓ 結果
example
何を行っているかと言うと、2行目の$が2個ある所は、$aに入っている文字列の変数を用意し、そこにexampleという文字列をセットしているという事です。
2行目は次のように捉えて貰うと分かり易いです。
$$a = 'example';
// ↓同じ
$foo = 'example';
今回は以上になります。
知らなかった方はどこかで是非使って見てください!