我有一个类似的php类
class data{
var $counter;
var $a;
var $b;
var $c;
var $d;
var $e;
var $f;
var $g;
var $h;
var $etc;
function data(){$this->counter=0;}
function addvalue($value){
$this->a[$this->counter]=$value;
$this->b[$this->counter]=0;
$this->c[$this->counter]=0;
$this->d[$this->counter]=0;
$this->e[$this->counter]=0;
$this->f[$this->counter]=0;
$this->g[$this->counter]=0;
$this->h[$this->counter]=0;
$this->etc[$this->counter]=0;
$this->counter++;
}
}
然后,类的对象
if(isset($_SESSION['data'])==0){
$_SESSION['data']=new data();
}
代码是有效的,但我很好奇是否可以在foreach循环中设置所有具有相同值的属性:"0"。我尝试过这种方法,但没有成功:
function addvalue($value){
foreach($this as $key => $value){
if($key!='counter'){$this->$key[$this->counter]=0;}
}
$this->a[$this->counter]=$value;
$this->counter++;
}
谢谢。
{$this->$key[$this->counter]=0;}
语句出错。应该是
if( $key != 'counter' ) {
$this->{$key}[$this->counter] = 0;
}
(请注意$key
周围的大括号)。
变量名的更复杂的动态表达式需要大括号语法。
您可以简单地执行以下操作:-
class data{
var $counter = 0;
var $a = 0;
var $b = 0;
var $c = 0;
var $d = 0;
var $e = 0;
var $f = 0;
var $g = 0;
var $h = 0;
var $etc = 0;
}
指定默认值。如果这就是你想要达到的目标,我不能百分之百确定。
我想我应该指出,PHP现在使用__construct()
作为构造函数名称,而不是与类同名的方法。