関数スコープの定数を PHP で使用することは可能ですか?
そうでない場合、(メソッドではなく) 関数内に定数が必要な場合に推奨される代替手段は何ですか?
編集
私の特定のユースケース:
私はデータベースで動作する機能を持っています。テーブル名 (および場合によっては、フィールド名などの変更されないその他の情報) を定数に格納したいと思います (接続文字列で単に「ハードコーディング」するのに対して)。他の関数は、テーブル名について知る必要はありません。
関数スコープの定数を PHP で使用することは可能ですか?
そうでない場合、(メソッドではなく) 関数内に定数が必要な場合に推奨される代替手段は何ですか?
編集
私の特定のユースケース:
私はデータベースで動作する機能を持っています。テーブル名 (および場合によっては、フィールド名などの変更されないその他の情報) を定数に格納したいと思います (接続文字列で単に「ハードコーディング」するのに対して)。他の関数は、テーブル名について知る必要はありません。
少し新しいバージョンの PHP を使用している場合は、名前空間で必要なものを取得できる可能性があります。
このページを見てみましょう: http://php.net/manual/en/language.namespaces.nsconstants.php
<?php
namespace my\name; // see "Defining Namespaces" section
class MyClass {}
function myfunction() {}
const MYCONST = 1;
$a = new MyClass;
$c = new \my\name\MyClass; // see "Global Space" section
$a = strlen('hi'); // see "Using namespaces: fallback to global
// function/constant" section
$d = namespace\MYCONST; // see "namespace operator and __NAMESPACE__
// constant" section
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // see "Namespaces and dynamic language features" section