PHP Инициализировать переменные класса без конструктора

У меня есть следующий класс, например

class A{
 public var1;
 public var2;
}

теперь, я хочу создать объект этого класса, и я делаю следующее:

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

Есть ли более лучший способ сделать это, так как иногда в классе может быть даже 20 таких переменных. Я просто ищу, чтобы уплотнить код, и конструктор не используется для этого класса. Значения для переменных не являются статическими (поэтому не используется статическое ключевое слово)

Я больше ищу для такого назначения, которое мы делаем для массивов:

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

Кроме того, как мне обойтись, избегая NullPointerException (которое иногда возникает, когда я пытаюсь отправить этот объект в веб-службу с включенной поддержкой .Net). Это необязательно, поскольку я могу связать это с нулевыми переменными внутри класса, но не совсем точно, как преодолеть эту ошибку.

2 ответа

Ну, конструктор может принять массив параметров, содержащий значения для этих переменных класса, которые вы задали для переменных класса внутри конструктора. Чтобы избежать нулевого значения, просто назначьте каждую переменную класса, которую вы объявляете для какого-то базового значения, такого как пустая строка, любое значение, которое вам неинтересно.


Есть ли лучший способ присвоить значения свойствам класса? Ну, есть несколько способов, но один из них не обязательно лучше, чем другой, и все они будут включать в себя аналогичное количество кода для выполнения.

Невозможно ответить на ваш вопрос .NET; Я не знаком с этим.

licensed under cc by-sa 3.0 with attribution.