dポイントプレゼントキャンペーン実施中!

クラスのstaticメンバの内容をヒアドキュメントで出力する方法はあるでしょうか。

まず以下のように定義します。
class abc {
  public static $z = "あんこ大好き";
}

そして以下のようにやると abc:: と表示されてしまいます。
print <<< EOD
  abc::$z
EOD;

ちなみに下記のようにやった場合はうまくいきます。
print abc::$z;


printよりヒアドキュメントのほうがまとめて書けるし見た目がわかりやすいので使いたいのですが、こう表記できるよっていうのがあるのでしょうか。

単純にヒアドキュメントに明記する方法があれば一番助かります。

よろしくお願いします。

A 回答 (2件)

$z = abc::$z; とでもしておくしかないかと。


一応「値を返すだけの関数」をひとつ用意しておくと、静的メンバのほかに定数やクラス定数もヒアドキュメント内ですぐに使えるようになります。それらを頻繁に使用するなど、場合によってはいちいち変数に入れるより以下の方法でもよいかも。


define('CONST_G','グローバル定数');
class abc{
public static $z = "あんこ大好き";
const CONST_C = 'クラス定数';
}

//値を返すだけの関数名を変数に入れとく
function get_val($val){return $val;}
$get_val = 'get_val';

echo <<<EOL
{$get_val(abc::$z)}<br>
{$get_val(CONST_G)}<br>
{$get_val(abc::CONST_C)}
EOL;
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
とても参考になりました。

お礼日時:2011/09/18 15:05

インスタンスを作ったらだめなのでしょうか?



$abc=new abc;
print <<<EOD
{$abc->z}
EOD;
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
確かにこれも解決策の一つです。

お礼日時:2011/09/18 15:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!