PHP - 文法 - オブジェクト・配列要素取得


クラウディア 


1. 概要
2. 例
3. 要素の取得
4. 安全に要素を取得
5. 参考サイト

1. 概要

 配列とオブジェクトで要素の取り方が異なるのですが、ときどき、忘れちゃう。

2. 例

 例えば、「Laravel」で、リクエストを受け取るとき。

use Illuminate\Http\Request;
 でインクルードして。

public function SumFunction(Request $request)
{
 てな感じで受け取って。

$params = $request->all();
 で展開するわけですが。  これを。

print_r($params);
 で表示すると。

Array ( )
 になります。  「object」でキャストして。

$params = (object)$request->all();
 で展開して、同様に表示すると。

stdClass Object ( )
 と表示します。  はは、本項、蛇足だな。

3. 要素の取得

 中に、「param1」というアイテムがあるとして、その変数を示すには、配列の場合。

$params['param1']
 と表現します。  オブジェクトの場合は。

$params->param1
 という表現になります。

4. 安全に要素を取得

 元の変数が、配列かオブジェクトかわからなくなっちゃったときは、下記のような関数をつくると。

function safe_get($data, $key)
{
    if (is_array($data) && array_key_exists($key, $data))
	{
        return $data[$key];
    }

    if (is_object($data) && property_exists($data, $key))
	{
        return $data->$key;
    }

    return null;
}
 例外が発生したりせずに、安全に取得することができます。

5. 参考サイト

 本ページは、「ChatGPT」くんを参考にさせていただきました

AbemaTV 無料体験