2011-03-02 9 views
1

私は次のコードを持っている:PHPで変数を使用してDEFINED定数を関数に渡すことはできますか?

DEFINE('DEFINEDTESTVAR', 'Hello World'); 

function callit($callVar) { 
    echo "The call is ".$callVar; 
} 


$passthis = 'DEFINEDTESTVAR'; 
callit($passthis); 

を私はcallit(DEFINEDTESTVAR)を行うことができます知っているが、それは私がやって探していたものではないのです。出来ますか?

+3

これはあなたがしたいことではない場合、何をやりたいのですか?あなたが説明なしに拒否したアプローチは、あなたのタイトルの問題に対する解決策です。 –

+0

PHPを書く5年間で初めて 'define()'が大文字で書かれています。 – BoltClock

答えて

7

いずれに渡す自体定数:定数を渡して、あなたはそれは未定義の定数のために(定義されていない場合にはnullをテストすることを可能にする

$passthis = DEFINEDTESTVAR; 

それともconstant()経由のアクセスを文字通り定数名の文字列になります)。

$passthis = constant('DEFINEDTESTVAR'); 
+0

作品。ありがとう。 –

2
define('DEFINEDTESTVAR', 'Hello World'); // you should use define 

function callit($callVar) { 
    echo "The call is ".$callVar; 
}  

$passthis = DEFINEDTESTVAR; // no need to use quotes 
callit($passthis); 
+1

実際には 'define'か' DeFiNe'か 'DEFINE'か' DEFINE'かどうかは関係ありません。私はちょうど大文字でそれを書くのがどれほど珍しいかを指摘していました。 – BoltClock

+0

@BoltClock:ありがとう。 – Gaurav

0
<?php 
DEFINE('DEFINEDTESTVAR', 'Hello World'); 

function callit($callVar) { 
    echo "The call is ".$callVar; 
} 


$passthis = DEFINEDTESTVAR; 
callit($passthis); 
0

文字列から定数の値を得ることができますconstant()で。名前付き定数が見つからない場合はnullを返します。

$passthis = constant('DEFINEDTESTVAR'); 
callit($passthis); 
関連する問題