2010-12-03 62 views
3

我有以下类,PHP不使用构造函数来初始化类变量

class A{ 
public var1; 
public var2; 
} 

现在,我要创建这个类的一个对象,我做了以下内容:

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

是否有更多更好的方式来做到这一点,因为有时甚至还可能有20这类变量在类中。我只是寻找压缩代码,并没有为这个类使用构造函数。变量的值不是静态的(这就是为什么不使用static关键字)

我期待更多的这种类型的赋值,我们为数组做:

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

此外,我将如何四处避免NullPointerException(当我尝试将此对象发送到启用.Net的Web服务时有时出现) - 这是可选的,因为我可以将此类与类中的空变量关联起来,但不完全确定如何解决此错误。

回答

1

那么构造函数可以接受包含这些类变量的值的参数数组,这些变量可以在构造函数中设置为类变量。为了避免null,只需将你声明的每个类变量赋值给一些基本的值,比如空字符串,你不关心的任何值。

0

有没有更好的方法给类的属性赋值?好吧,有多种方式,但其中一种不一定比另一种更好,而且它们都将涉及类似数量的代码来完成。

无法回答你的.NET问题;我不熟悉它。

+0

我提供了一个我正在寻找的例子。请提供任何线索? – Stoic 2010-12-03 22:22:55

+1

是的,你可以做我认为你想要的东西..见http://jsbin.com/anapo3/edit – simshaun 2010-12-03 22:27:23

相关问题