class Item
{
private $_SomeArray = array();
private $elementOfanArray;
function __construct()
{
$this->_SomeArray[0]="default message";
$this->elementOfanArray=0; //I am trying to assign empty value to an var
}
public function getArray()
{
return $this->SomeArray; //function returning whole array
}
public function setArray(elementOfanArray) //function for adding new element to an array and checking if not empty
{
if(!elementOfanArray)
{
}
else
{
array_push($_SomeArray, elementOfanArray);
$elementOfanArray = 0; //I am trying to assign value after addding element to an array
}
}
function __destruct(){
$this->_SomeArray;
$this->elementOfanArray;
}
}
这是我的代码,但现在我想知道使用“array_push”是否是正确的选择,因为它将被调用大约20次。 函数调用的数量不是常数,所以如果值会更少..我想从数组中删除它们或者只是立即转储它们。
我得到的另一个问题是我应该如何从这个类中获取我的元素,有没有办法让整个数组的值超出这个类的范围?
我的写作是否正确?
答案 0 :(得分:0)
回答关于使用array_push
的第一个问题:您使用它的次数并不重要,它可以将项目添加到数组中。所以用吧!
你也可以使用这种语法$array[] = 'value'
,它也可以做同样的事情。
一些注意事项:
1)php中的变量名必须以$
开头。您的代码中有几个地方没有它们,例如:
public function setArray(elementOfanArray)
和
if (!elementOfanArray) {
2)函数SomeArray
中使用的名称与构造函数_SomeArray
中的名称之间存在命名不一致。
3)由于_SomeArray
是类的属性,因此需要在setArray函数中使用$this->_SomeArray
访问它:
array_push($this->_SomeArray, $elementOfanArray);
4)使用析构函数来清除局部变量确实没有价值,当对象被销毁时它们将被取消。通常,您可以使用析构函数来执行关闭连接,保存状态等操作。 目前,看起来你会使用这样的类:
$myItem = new Item();
$myItem->setArray('Array Item #1');
$myItem->setArray('Array Item #2');
$myItem->setArray('Array Item #3');
$array = $myItem->getArray();
var_dump($array);
// returns:
//
// array(4) {
// [0]=>
// string(15) "default message"
// [1]=>
// string(13) "Array Item #1"
// [2]=>
// string(13) "Array Item #2"
// [3]=>
// string(13) "Array Item #3"
// }
5)我不确定你对class property elementOfanArry
的意图是什么:
$this->elementOfanArray = 0; //I am trying to assign empty value to an var
如果您认为自己需要它,因为setArray()
方法接受参数,则情况并非如此。
总而言之,只需简单地解决帖子标题"将新元素传递给类中的数组并返回其值",代码可能如下所示:
class Item
{
private $_SomeArray = array();
function __construct()
{
$this->_SomeArray[0] = "default message";
}
public function getArray()
{
return $this->_SomeArray; //function returning whole array
}
public function setArray($elementOfanArray) //function for adding new element to an array and checking if not empty
{
if (!$elementOfanArray) {
} else {
array_push($this->_SomeArray, $elementOfanArray);
// or use:
// $this->_SomeArray[] = $elementOfanArray;
}
}
}
$myItem = new Item();
$myItem->setArray('Array Item #1');
$myItem->setArray('Array Item #2');
$myItem->setArray('Array Item #3');
$array = $myItem->getArray();