PHP関数内でPHP定数を使用することは可能ですか?
// in a different file
DEFINE ('Host', 'hostname');
DEFINE ('USER', 'username');
DEFINE ('PASSWORD', 'password');
DEFINE ('NAME', 'dbname');
// connecting to database
function database()
{
// using 'global' to define what variables to allow
global $connection, Host, USER, PASSWORD, NAME;
$connection = new mysqli(Host, USER, PASSWORD, NAME)
or die ('Sorry, Cannot Connect');
return $connection;
}
関数のglobal
でそれらを宣言する必要はありません。PHPはそれらをグローバルとして認識します。
function database()
{
// using 'global' to define what variables to allow
global $dbc;
$connection = new mysqli(Host, USER, PASSWORD, NAME)
or die ('Sorry, Cannot Connect');
return $connection;
}
Php.netから:
スーパーグローバルと同様に、定数のスコープはグローバルです。スコープに関係なく、スクリプト内のどこからでも定数にアクセスできます。スコープの詳細については、 可変スコープ のマニュアルセクションをお読みください。
define()
はグローバル定数を生成します。
はい。ただし、「グローバル」と呼ぶ必要はありません。定数はグローバルです。あなたが取得する場合 unexpected T_STRING, expecting T_VARIABLE
エラーとして、「グローバル」ステートメントの後に定数参照が表示されることを期待していないためです。