検索

キーワード


目次

【PHP】オブジェクトと配列の違い、JSON形式の取り扱いについて

  • 公開日:2020-10-06 17:34:07
  • 最終更新日:2021-02-05 18:11:30

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

オブジェクト

PHPの開発で欠かせない変数や配列。同じく値を管理するものに、オブジェクトというものがあります。

配列に似たもので、PHPで開発する上で必ず耳にするキーワードですが、なかなか違いがわかりづらかったりします。

そこで、オブジェクトと配列の違いについて解説してみます。


オブジェクトと配列の違いについて

まずは配列。例として、名前と年齢を格納した連想配列を定義してみます。

$array = [
  "name" => "田中",
  "age" => 20,
];

構造としては"インデックス名" => "値"という形になっています。

値を出力するには以下のようにします。

echo $array["name"];

これで、田中という名前が出力されます。


次にオブジェクトを定義してみます。

class Man{
  public $name;
  public $age;
 
  function __construct($name, $age){
    $this -> name = $name;
    $this -> age = $age;
  }
}
 
$man1 = new Man("田中", "20");

配列との大きな違いとして、クラスの中にプロパティを設定する必要があります。

クラスの宣言は{ } で行い、変数を宣言します。

オブジェクトはnew演算子でインスタンス化をして値を持たせます。

値を出力するには以下のようにします。

echo $man1 -> name;


オブジェクトにするメリットとしては、開発の規模が大きくなった際にプロパティと一緒に処理も設定できることです。

規模が大きくなるにつれて、管理するデータも増えてきます。しかしオブジェクトであれば、関数はクラスに紐づいているため、対象のクラスから容易にアクセスや修正が行うことができます。

JSON化

PHPでは様々な言語で使用することができるJSON形式に変換することができます。

JSONデータを1つ用意するだけで、JavaScriptを使う人、PHPを使う人、Rubyを使う人など、様々なプログラミング言語でプログラミングする人たちにデータを渡すことができます。

特にPHPでは、JavaScript内で処理するためのデータを作って渡すことが多いので、使い方をしっかり覚えておきましょう。

json_encode

それでは、PHPで連想配列をJSON形式に変換してみましょう。

JSON形式に変換するには、json_encode関数を使います。

json_encode(変換する値[, オプション])
$fruits = [
  "りんご"=>"apple",
  "みかん"=>'orange',
  "メロン"=>'melon',
  "パイナップル"=>'pineapple'
];

//配列をJSON形式に変換
$jsonstr =  json_encode($fruits, JSON_UNESCAPED_UNICODE);
echo $jsonstr;
{"りんご":"apple","みかん":"orange","メロン":"melon","パイナップル":"pineapple"}

第二引数にオプションとしてJSON_UNESCAPED_UNICODEを指定することで、日本語も使用できます。


json_decode

今度は、JSON形式に変換された連想配列を、PHPで使えるようにデコードしてみましょう。

デコードするにはjson_decode関数を使います。

json_decode(デコードする値)

先ほどの例でエンコードした値をデコードしてみます。

$fruits = [
  "りんご"=>"apple",
  "みかん"=>'orange',
  "メロン"=>'melon',
  "パイナップル"=>'pineapple'
];

//配列をJSON形式に変換
$jsonstr =  json_encode($fruits, JSON_UNESCAPED_UNICODE);

//JSON形式を元に戻す
$fruits = json_decode($jsonstr, true);
echo $fruits;
Array
(
    [りんご] => apple
    [みかん] => orange
    [メロン] => melon
    [パイナップル] => pineapple
)


まとめ

オブジェクトとJSON形式のファイルについてまとめてみました。

特にオブジェクトは、開発の規模が大きくなるほど重要な要素になってくるので、難しいとは思いますが少しずつ勉強して使いこなせるようになりましょう!


【著者】

當山

主にPHPでのフレームワーク開発やWebアプリの開発に携わってきました。 得意分野はHTML5とCSSによるフロントエンド開発。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事