以下のコードは正常に動作します:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities
{
public static $color;
function display()
{
echo utilities::$color = $_SESSION['color'];
}
}
utilities::display(); ?>
これは私が欲しいものですが、うまくいきません:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities {
public static $color = $_SESSION['color']; //see here
function display()
{
echo utilities::$color;
} } utilities::display(); ?>
次のエラーが表示されます。Parse error: syntax error, unexpected T_VARIABLE in C:\Inetpub\vhosts\morsemfgco.com\httpdocs\secure2\scrap\class.php on line 7
Php は、セッション変数が関数の外に格納されるのを好みません。なんで?それは構文の問題ですか、それとも何ですか?ユーティリティ関数を呼び出すだけで、いくつかのセッション変数をグローバルに保存する必要があるため、オブジェクトをインスタンス化する必要はありません。init()
関数を実行するたびに、関数を呼び出してグローバル セッション変数を格納したくありません。ソリューション?