定義されている変数をすべて表示する

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

そういえば定義されてる変数を全部表示する方法ってあったかな?

と思って調べてみたらありましたので紹介します。

get_defined_vars

get_defined_vars() です。
公式の説明は▼です。
https://www.php.net/manual/ja/function.get-defined-vars.php

似たようなもので「定義済みのすべての関数を取得する関数」や「定義済みのすべての定数を取得する関数」もあるようです。

今回は、「定義済みの変数すべてを取得する関数」です。

定義済みの範囲

「定義済みの変数」といっても、「どこで?」って思いません?

グローバル変数ならなんとなく想像もつくと思いますが、ローカル変数なんて同じ名前の変数が至る所で使われてますよね。

ということで、答えとしては get_defined_vars() が書かれている場所の範囲です。

言い換えると、「get_defined_vars() を書いたその場所で参照できる変数」となります。

公式から引用すると次のようになります。

  • 環境変数
  • サーバー変数
  • get_defined_vars() がコールされたスコープ内でユーザーが定義した変数

画面に表示する

ログ機能とかがあってログに出せるならログに出したら良いと思いますが、引継ぎ案件とかってそういうのが用意されてないことがほとんどです。
ってか、その辺りまで作りこんでるしっかりした業者だったら「引継ぎ案件」にならずに「作ったとこ」に依頼が行ってるはずですよね。

ってことで、調査するのもしんどいし、かといってログ機能を組み込んで、ってやるのもなかなか・・・という場面が忘れたころにやってきます。

本番環境では絶対やらない、開発環境だからこそできる方法で、さくっと表示させるのが下記です。

echo '<pre style="font-size:12px;line-height:1.2;border:solid 1px #aaa;padding:10px;margin:20px 0;">';
echo htmlspecialchars(print_r(get_defined_vars(), true), ENT_QUOTES);
echo '</pre>';

PHPシステムの調査・改修

ということで宣伝です。

PHPは 2003年頃から扱っておりまして20年近くの経験があります。
作ってきたものは大小さまざまで、小さいものは数万円から、大きなものだと2000万円くらいまであります。特殊ケースでは億超えもあります。
目安として、1000万円くらいまでなら私1人で担当し、それ以上になってくると他社も含めたチーム制になってきます。

とまぁそういう経験も踏まえまして、過去に作られたシステムの調査や改修は得意分野の1つです。

直接ソースコードを読んで理解していくタイプですので、資料や設計書が残ってなくても大丈夫です。

既存システムの引継ぎ先を探しているようでしたら、お気軽にお問い合わせください。もちろん新規案件でも可です。

メールやSNSなどのメッセージで簡単に連絡いただいたあとで、電話していただけると確実です。

特に 03 で始まる番号は、営業電話が面倒で取らない場合がほとんどです。
また、メッセージだけだと時間が掛かるので、最初の最初はお電話からでお願いしたいです。

※電話にはスカイプ・Google Meet・Zoomなども含みます。