質問: $myAliase::getParam(); ``` このような記述とするしかないのでしょうか? なお、対象のクラスにはコンストラクタ以外にメンバー変数へのアクセス方法がありません。
回答: 大体あっています。 コンストラクターしか目的のメンバーに書き込みアクセス出来ないのであれば、コンストラクターを実行しなければいけません。 ただ、getParam()はstaticメソッドですよね。(::でアクセスしているので。) ということは、getParam()内の処理ではstaticフィールドにしかアクセス出来ないはずです。 インスタンス変数は使えません。 この状態でコンストラクター実行の有無によってgetParam()の結果が変わるというのであれば、その「コンストラクターからしかアクセス出来ないメンバー変数」というのはstaticフィールドだと言うことでしょうか。 であるならちょっと、妙な設計だと思います。初期化とはそのインスタンスに対して実行されて然るべきです。 インスタンスと無関係なstaticフィールドが初期化のたびに書き換わってしまうと、別のインスタンスにも影響を与えてしまいます。(それを意図しているなら正しいのですが)