Warning: session_save_path(): Cannot change save path when headers already sent in /home/yqual/s-yqual.com/public_html/s-yqual/public/yqual/wp-content/themes/yqual/session.php on line 2

Warning: session_start(): Cannot start session when headers already sent in /home/yqual/s-yqual.com/public_html/s-yqual/public/yqual/wp-content/themes/yqual/session.php on line 3

Warning: session_regenerate_id(): Cannot regenerate session id - session is not active in /home/yqual/s-yqual.com/public_html/s-yqual/public/yqual/wp-content/themes/yqual/session.php on line 5
プログラミング

config実装編(ドット記法・多次元配列) PHPポケモン 71

PHP PHPポケモン ポケモン
config実装編(ドット記法・多次元配列) PHPポケモン 71

configファイルの作成

プログラミングでは設定値というものを使うことが良くあります。量が多い場合はデータベースへ格納して管理する場合も多いですが、わざわざテーブルを用意してまで格納するほどのものでなければ、ファイルに配列として定義してアクセスできる方が便利です。フレームワークではこれらをconfigファイルとして定義することで、自由に呼び出せるようになっていることがほとんどです。

PHPポケモンではDBを使わない関係上、configファイルの機能はぜひ欲しいので、どこからでも呼び出せるように実装していきます。

 

配列のみの定義ファイル

まず、設定ファイルの格納用としてConfigディレクトリを用意して、配列のみを定義するPHPファイルを作成します。

ポケモンではおなじみ、ジム情報configファイルとして定義しましょう。

 

ジム情報(/Config/gym.php
<?php
return [
    // シティ・バッジ・リーダー
    ['Pewter', 'Boulder', 'Takeshi'],       # ニビジム
    ['Cerulean', 'Cascade', 'Kasumi'],      # ハナダジム
    ['Vermilion', 'Thunder', 'Machisu'],    # クチバジム
    ['Celadon', 'Rainbow', 'Erika'],        # タマムシジム
    ['Fuchsia', 'Soul', 'Kyou'],            # セキチクジム
    ['Saffron', 'Marsh', 'Natsume'],        # ヤマブキジム
    ['Cinnabar', 'Volcano', 'Katsura'],     # グレンジム
    ['Viridian', 'Earth', 'Sakaki'],        # トキワジム
];

 

上記のように、配列だけを定義したPHPファイルです。定義した配列は返り値となるようにreturnします

定義した配列は読み込み後にアクセスできるよう、変数に格納する必要があります。読み込み方法はincludeを使い、その結果を変数へ代入することで、定義した配列を格納した変数を作成することができます。 

$root_path = __DIR__.'/../..';
$config = include($root_path.'/Config/gym.php');

 

これで、$configgym.phpに定義した配列情報を格納することができます。

 

グローバルで取得

変数に格納したとしても、これをどこからでも呼び出せなければ意味がありませんね。なので、そのためにグローバル関数を使います。

また、配列内の指定した要素を取得できるように、Laravelなどのフレームワークで用いられているドット記法に対応した多次元配列指定方法を採用します。

 

ドット記法例
$array['fruits']['apples']['aomori'];
→ fruits.apples.aomori

 

configグローバル(/App/Globals/ConfigGlobal.php
<?php
// config取得用グローバル関数
function config(string $dot_key)
{
    $root_path = __DIR__.'/../..';
    $keys = explode('.', $dot_key);
    $config = include($root_path.'/Config/'.$keys[0].'.php');
    unset($keys[0]);
    foreach($keys ?? [] as $key){
        $config = $config[$key];
    }
    return $config;
}

 

config関数の引数として、ドット記法の多次元配列パスを受け取ります。

受け取った文字列をexplodeでドット区切りに配列へ変換し、その最初の値をファイル名として取得します。こうすることでconfigファイル分けをしても、目的の値を取得できます。ファイルを取得後は、0番キー(ファイル名)は不要になるのでunsetで取り除きforeachで順番にキーを取り出していきます。

こうすることで、多次元配列にも対応することが可能です。もしキー指定をしていない値を取得する場合は、添え番でアクセスできます。

  

まとめ

いかがだったでしょうか。

今回のPHPポケモンでは、設定ファイルの作成方法と、ドット記法でのアクセス方法をご紹介しました。

PHPを学習中の方は、ぜひ参考にしてみてくださいね。

 

注目の記事

PHPポケモン(α)攻略wiki「稼ぎ方特集」
雑記
PHP,PHPポケモン,ポケモン
PHPポケモン(α)攻略wiki「稼ぎ方特集」

前回に引き続き、連続wiki投稿でPHPポケモン溺愛ユーザーにとっては歓喜の2日間です。   という冗談も踏まえつつ、今回は「稼ぐ」ということについて真面目に考察してみたいと思います。もしリアル世界での「稼ぐ」を目的に来た人は、盛大にブラウザバックしてください。   PHPポケモンにおける「稼ぐ」...

これをしてはいけません!「よくわかるSEO対策」エンジニアのための基礎知識編
SEO対策
htaccess,HTML,JavaScript,SEO,エンジニア,プログラミング
これをしてはいけません!「よくわかるSEO対策」エンジニアのための基礎知識編

  近年ではWebサイト制作会社や個人事業主はかなり増えてきました。 会社によっては力を入れている部分は異なり、主に「デザイン」「機能(システム)」「SEO」という3つに分けられます。 飽和しているのでは無いかと囁かれている中、この3つすべてを揃えた事業者は意外と少なく、個人となれば更に少なくなります。...

動画にカラオケテロップを入れる編集方法【AfterEffectsで色変わりの文字】
動画編集
Adobe,AfterEffects
動画にカラオケテロップを入れる編集方法【AfterEffectsで色変わりの文字】

  動画に声と同じタイミングでテロップを入れたい カラオケのような文字はどうやっていれればいいの?   一見簡単に見えるものも、いざ導入しようとすればどうやればいいかわからない、そんなこと多いのではないでしょうか? 今回はAdobe AfterEffectsを使った方法をご紹介します。些細な編集が動画のク...

PHPポケモン「レスポンス機能編」メッセージの返却 12
プログラミング
PHP,PHPポケモン,ポケモン
PHPポケモン「レスポンス機能編」メッセージの返却 12

  第12回PHPポケモンは「レスポンス機能編」です。 メッセージやデータのやり取り部分を、よりシステム風に作成していきます。   第1回はコチラ   レスポンス(Response)の実装  今までは結果(メッセージ等)はechoを使って出力していましたが処理が行われたタイミングで出力されてしまうため...

これってスパム?amazon・paypalを装う悪質メールの対処方法とは
ネットワーク
amazon,Paypal,Xserver,スパム,三井住友,楽天,迷惑メール
これってスパム?amazon・paypalを装う悪質メールの対処方法とは

定期更新、役立つコラムのコーナー!   今回の注目したのは「迷惑(悪質)メールについて」です。   以前はamazonや楽天を名乗る業者から届いた迷惑メールについて紹介、その対処方法について取り上げましたが、今回は更にレベルアップしたスパムがいくつか届いたので、それらも紹介がてら、騙されないため...

知らなきゃ損!表記ゆれに強いSEO対策とは「オーガニック検索ユーザーを増やそう」
SEO対策
description,keyword,meta,title
知らなきゃ損!表記ゆれに強いSEO対策とは「オーガニック検索ユーザーを増やそう」

  「なかなかオーガニック検索の割合が増えない」 「どういったSEO対策をすればいいかわからない」   ブログやサイト運営者の方で、思うように成果が出ないと悩んでいる人は、まだまだSEO対策が十分ではない可能性があります。そして、SEO対策の中でも知らないと損する一つが「表記ゆれ」への対応です。 ...

レベニューシェアとは?利益報酬・共同事業に潜む罠
フリーランス
レベニューシェアとは?利益報酬・共同事業に潜む罠

  レベニューシェアという言葉を聞いたことがありますか?   ビジネスの世界にいる人なら、意味は知らなくてもやったことがある方が意外と多いはずです。特にフリーランスの人や、プログラミングやデザインといったスキルを持っている人はレベニューシェアでは重宝されるため多い傾向があります。ここ最近...

コンテンツ配信業でバズるために大切な3つの法則〜『1ヶ月でチャンネル登録者数1000人』は参考にするな
マーケティング
YouTube,YouTuber,ブログ
コンテンツ配信業でバズるために大切な3つの法則〜『1ヶ月でチャンネル登録者数1000人』は参考にするな

  YouTubeやブログを始めたけど思ったように伸びない・・・   こういった人は、チャンネル登録者数を伸ばす方法などの動画を見ても参考にならなく、結果に繋がらないという場合がほとんどです。 その理由は、その人自身に問題があるわけではなく、動画の前提条件がそもそも違っているからです。   今回は「...

カテゴリ

SEO対策 イベント デザイン ネットワーク ビジネスモデル フリーランス プログラミング マーケティング ライティング 動画編集 雑記

タグ

5G Adobe AfterEffects AI ajax amazon Animate api artisan atom Automator AWS Bluetooth CSS CVR description EC-CUBE4 ECショップ ESLint Facebook feedly foreach function Google Google AdSense Honeycode htaccess HTML IEEE 802.11ax Illustrator Instagram IoT JavaScript jQuery jQuery UI keyword LAN Laravel Linux MacBook MAMP meta MLM MySQL NoCode note OS OSI参照モデル Paypal Photoshop PHP phpMyAdmin PHPポケモン PremierePro rss SEO SEO対策 Sequel Pro Skype SNS SSH Symfony TCP/IP title Toastr Trait Twig Twitter UCC V系 WAN WebSub Wi-Fi wiki Windows WordPress XAMPP xml Xserver YouTube YouTuber Zoom アーティスト アウトプット アクセス層 アニメーション アフィリエイト イーブイ インターネット インプット エンジニア オブジェクト指向 お金配り クリック単価 クリック数 コミュニケーション能力 コロナ コンサルティング サムネイル システムエンジニア スタートアップ スタイルシート スパム データベース ディープフェイク デザイナー デザイン テレワーク ナンパ ニュース ネットワークモデル ノマドワーク バナー ピカチュウ ビジネス フィード フリーランス ブロガー ブログ プログラマー プログラミング プログラミング学習 プログラミング教育 プロトコル ホームページ制作 ポケモン マークアップ マーケティング メール リモートワーク レンダリング 三井住友 三宮 仕事依頼 児童デイ 児童デイサービス 児童発達支援 公開鍵 初心者 助成金 勉強法 営業 広告 広告収入 必勝マニュアル 放課後等デイサービス 朝活 楽天 深層学習 無線LAN 独立 神戸 福祉 秘密鍵 翻訳 自己啓発 英語 見積書 計算機 読書 起業 迷惑メール 配列 銀の弾丸 集客 雑学力