2010-12-03 16 views
3

私は以下のクラスを持っています。PHPコンストラクタなしでクラス変数を初期化する

class A{ 
public var1; 
public var2; 
} 

今、私はこのクラスのオブジェクトを作成したい、と私は次の操作を行いますの回でも、20が存在することができるので、

$a = new A(); 
$a->var1 = 123; 
$a->var2 = 987; 

は、これを行うために、より良い方法は、ありますクラス内のそのような変数。私はちょうどコードを圧縮するのを探していて、コンストラクタはこのクラスには使用されていません。どのように私は周りの回避に行くだろう、さらに

$arr = array(
'var1' => 123, 
'var2' => 987 
); 

:私はより多くの我々は、配列のために行うこの種の代入を探しています

変数の値は、(静的なキーワードが使用されていない理由です)、静的ではありませんNullPointerException(このオブジェクトを.Net対応Webサービスに送信しようとすると時々発生する) - これはオプションですが、これはクラス内のnull変数に関連付けることができますが、このエラーをどのように克服するかは正確にはわかりません。

答えて

1

まあ、コンストラクタは、コンストラクタ内のクラス変数に設定したこれらのクラス変数の値を含むパラメータの配列を受け入れることができます。 nullを避けるには、宣言するすべてのクラス変数に、空の文字列、気にしない値などの基本的な値を割り当てます。

+0

うーん...しかし、私はクラスにコンストラクタを追加することはできません..私は約5以上の変数を持つほとんどのクラスで約100のクラスがあります。 null値の問題をありがとう - 私は同じ行に沿って考えていた。 – Stoic

+1

クラスを拡張し、コンストラクタをオーバーライドしますか?それは可能ですか?または、作成後に一括して渡すことができるように、ある種のsetParamsメソッドを追加します。 – Chestone

0

クラスのプロパティに値を割り当てるより良い方法はありますか?さて、複数の方法がありますが、必ずしも他のものより優れているとは限りません。また、達成するためには、同様の量のコードを含めることになります。

.NET質問に答えることはできません。私はそれに精通していない。

+0

私が探しているものの例を提供しました。どんな手がかりもお願いします。役立つ関数を作成するために私を導いたん – Stoic

+1

はいあなたは私はあなたが欠けていると思うものを行うことができます。.. http://jsbin.com/anapo3/editが – simshaun

+0

は、うーん、私が探していますない正確に何を見たが、ええ.. http://jsbin.com/anapo3/2/edit – Stoic

関連する問題