MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
PHPの基礎 - 定数のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
PHPの基礎 - 定数
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == 定数は、プログラムの実行中に値が変更されない固定値を表現するために使用する。<br> 変数とは異なり、1度定義すると変更できない。<br> <br> 定数の定義方法には、主に2つのアプローチがある。 * define関数を使用する方法 * constキーワードを使用する方法 <br> constキーワードはコンパイル時に定義される必要があり、クラス内での定数定義にも使用できる。<br> define関数は実行時に定義できるため、動的な使用が可能である。<br> <br> PHPには多くの組み込み定数が存在する。<br> 例えば、<code>PHP_VERSION</code>はPHPのバージョン、<code>TRUE</code>、<code>FALSE</code>、<code>NULL</code>といった論理値も定数として扱われる。<br> <br> また、マジックコンスタントと呼ばれる特殊な定数もある。<br> <code>__FILE__</code> (現在のファイルパス) や <code>__LINE__</code> (現在の行番号) 等がこれに該当する。<br> <br> 定数を使用することにより、コード全体で一貫した値を維持できること、意図しない値の変更を防げること、コードの可読性が向上すること等が挙げられる。<br> 特に、設定値やシステム全体で共有する値の管理に適している。<br> <br> なお、定数が定義済みかどうかは<code>defined</code>関数で確認できる。<br> <syntaxhighlight lang="php"> if (defined('MAX_USERS')) { echo "MAX_USERSは定義済みです"; } </syntaxhighlight> <br><br> == define関数の使用 == <syntaxhighlight lang="php"> define('MAX_USERS', 100); echo MAX_USERS; // 出力 : 100 </syntaxhighlight> <br><br> == constキーワードの使用 == <syntaxhighlight lang="php"> const MIN_AGE = 18; echo MIN_AGE; // 出力 : 18 </syntaxhighlight> <br><br> == 魔法定数 == <code>__DIR__</code>は、PHPの魔法定数 (マジカル定数) の1つであり、そのPHPファイルが配置されているディレクトリの絶対パスを返す。<br> <u>この定数は、PHP 5.3以降で使用可能である。</u><br> <br> 例えば、以下に示すようなファイル構成の場合、index.phpファイル内で<code>__DIR__</code>を指定すると/var/www/html/myappを指す。<br> /var/www/html/myapp/ ├── index.php └── classes/ └── class.php <br> __DIR__のメリットを以下に示す。<br> * パスの信頼性 *: <syntaxhighlight lang="php"> // 相対パスの場合 (非推奨) require_once('class.php'); // 実行時の作業ディレクトリに依存 // __DIR__を使用 (推奨) require_once(__DIR__ . '/class.php'); // 常に確実なパス </syntaxhighlight> *: <br> * 異なるディレクトリからの実行でも動作 *: <syntaxhighlight lang="php"> // classes/class.phpを読み込む場合 require_once(__DIR__ . '/classes/class.php'); </syntaxhighlight> *: <br> * セキュリティの向上 *: 相対パスを使用する場合と比べて、意図しないファイルが読み込まれるリスクを減らす。 *: <br> * IDEのサポート *: 絶対パスを使用することいより、IDEの補完機能やパス解決が正確に機能する。 <br> <syntaxhighlight lang="php"> // 一般的な使用例 // 設定ファイルの読み込み require_once(__DIR__ . '/config/config.php'); // クラスファイルの読み込み require_once(__DIR__ . '/classes/User.php'); // テンプレートの読み込み include(__DIR__ . '/templates/header.php'); </syntaxhighlight> <br> ※注意<br> * WindowsでもLinuxでも適切に動作する。(パスの区切り文字を自動的に処理) * ファイルパスを組み立てる場合は、ディレクトリの区切り文字 ("/") の重複に注意する。 <br> <syntaxhighlight lang="php"> // 応用例 // 共通の定数として定義 define('BASE_PATH', __DIR__); define('CLASS_PATH', BASE_PATH . '/classes'); define('CONFIG_PATH', BASE_PATH . '/config'); // 後で使用 require_once(CLASS_PATH . '/User.php'); require_once(CONFIG_PATH . '/database.php'); </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Web]]
PHPの基礎 - 定数
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse