2

PHP定数は次のように定義されます。

define('const_name','const_value');

このように試しました:

define('const_name', $variable_name);  

なんで?私は初心者で、これが機能するかどうかを考えたからです。

define('const_name', 50);  

私のバージョンも動作します。そうではありません。それはうまくいくはずですが、私が何かをタイプミスしたためにうまくいかないのですか、それとも私の試みは単に愚かですか?

注:私の変数の中には、mysqlDBから抽出されたGoogleAnalyticsIDがあります。このUA-XXXXX-Yのような文字列だけで、それ以上のものはありません。

4

2 に答える 2

8

ドキュメントから:

定数の値。スカラー値とnull値のみが許可されます。スカラー値は、整数、浮動小数点、文字列、またはブール値です。リソース定数を定義することは可能ですが、推奨されておらず、予期しない動作を引き起こす可能性があります。

データベースから取得している値が文字列ではなく、単に__toString()メソッドを持つオブジェクトである可能性があります。定数値が文字列であることを保証するには、変数を文字列に明示的にキャストしてみてください。

define('const_name', (string)$varible_name);
于 2012-09-23T22:06:31.110 に答える
5
$myVariable="what up";
define('myConstant',"$myVariable");
echo myConstant;

しかし、実際には、なぜ変数を定数として定義するのでしょうか。これは、入るのに良い習慣ではありません。

于 2012-09-23T22:08:06.570 に答える