如果我们在一个类中定义一个数组,并使用一个方法来设置元素,当单独访问这些元素时,我似乎无法打印它们。
我已经设置了一个快速课程来演示这一点。
方法 printArrayZero 返回注意: 数组转换为字符串...
方法 printLocal 是我通常访问单个数组元素的方法,这似乎与本地数组一样正常。
class test
{
var $a = array();
function fillArray()
{
$this->a[0] = 'zero';
$this->a[1] = 'one';
$this->a[2] = 'two';
$this->a[3] = 'three';
$this->a[4] = 'four';
}
function printArrayZero()
{
print_r("Stored in element 0 : $this->a[0]");
}
function printLocal()
{
$t[0] = 'zero';
$t[1] = 'one';
$t[2] = 'two';
$t[3] = 'three';
$t[4] = 'four';
print_r("Stored in element 0 : $t[0]");
}
}
$ test-> printArrayZero()返回结果
存储在元素0中:数组[0]
$ test-> printLocal()返回结果
存储在元素0中:零
我仍然是OOP的新手,我已经在程序上用PHP编程了一段时间,我之前没有遇到过这个问题。
提前致谢。
答案 0 :(得分:2)
试试:
function printArrayZero()
{
print_r('Stored in element 0 : ' . $this->a[0]);
}
或:
function printArrayZero()
{
print_r("Stored in element 0 : {$this->a[0]}");
}
答案 1 :(得分:0)
Yor变量在print_r
中表现为字符串部分,请使用此代码
function printArrayZero(){
print_r("Stored in element 0 : {$this->a[0]}");
}
请在fillArray
之后先调用printArrayZero
方法
试试这段代码
$a = new test();
$a->fillArray();
$a->printArrayZero();
或者您可以将数组填入__constructor()
,
public function __constructor(){
$this->a[0] = 'zero';
$this->a[1] = 'one';
$this->a[2] = 'two';
$this->a[3] = 'three';
$this->a[4] = 'four';
}
__constructor
在创建类对象时调用自动,然后不需要fillArray
方法
$a = new test();
$a->printArrayZero();