Php 类中正确的数组推送用法?
我有一个这样的PHP类:Php 类中正确的数组推送用法?,php,class,function,variables,array-push,Php,Class,Function,Variables,Array Push,我有一个这样的PHP类: <?php class MyClass { public $my_variable = array(); public function func1() { $var1 = $this->my_variable; array_push($var1, 'var1'); return $this->my_variable; } public function func2()
<?php
class MyClass {
public $my_variable = array();
public function func1() {
$var1 = $this->my_variable;
array_push($var1, 'var1');
return $this->my_variable;
}
public function func2() {
$var2 = $this->my_variable;
array_push($var2, 'var2');
return $this->my_variable;
}
}
$my_class = new MyClass;
print_r($my_class->func1());
print_r($my_class->func2());
?>
两个print\r
函数返回一个空数组,并且没有显示错误
如何将“var1”和“var2”字符串添加到$my_variable
数组中?我不知道我在这里哪里出错了
谢谢。您必须通过引用分配
$var
。复制数组,然后向副本中添加一些条目,然后返回初始数组
$var2 = &$this->my_variable;
那是对的。
&
在此标记一个引用。您必须通过引用分配$var
。复制数组,然后向副本中添加一些条目,然后返回初始数组
$var2 = &$this->my_variable;
那是对的。
&
在这里标记了一个引用。$var1=$this->my_变量
实际上创建了数组的一个副本,然后将值推送到该副本上
相反,您可以这样做:$var1=&$this->my_variable
来创建引用,但最好不要使用无意义的变量:
public function func1() {
$this->my_variable[] = 'var1';
return $this->my_variable;
}
public function func2() {
$this->my_variable[] = 'var2';
return $this->my_variable;
}
或者,更恰当地说:
public function add($value) {
$this->my_variable[] = $value;
return $this->my_variable;
}
// call with `$my_class->add('var1'); $my_class->add('var2');
$var1=$this->my_variable
实际上创建了数组的一个副本,然后将值推送到该副本上
相反,您可以这样做:$var1=&$this->my_variable
来创建引用,但最好不要使用无意义的变量:
public function func1() {
$this->my_variable[] = 'var1';
return $this->my_variable;
}
public function func2() {
$this->my_variable[] = 'var2';
return $this->my_variable;
}
或者,更恰当地说:
public function add($value) {
$this->my_variable[] = $value;
return $this->my_variable;
}
// call with `$my_class->add('var1'); $my_class->add('var2');
@bwoebi:对短代码感兴趣的人不会使用
array\u push
:P@minitech不了解[]
的人使用array\u push
^^我想在编写php的10年里,我从来没有使用过array\u pop。但我也发现,那些甚至不知道array\u push(无论是否使用)的人也永远不知道array\u pop和array\u shift和array_unshift@bwoebi:对短代码感兴趣的人不使用array\u push
:P@minitech不了解[]
的人使用array\u push
^^我想在编写php的10年里,我从来没有使用过array\u pop。但我也发现,那些甚至不知道数组推动(不管他们是否使用它)的人也永远不知道数组推动、数组移位和数组取消移位