Php 访问类属性时出现意外行为
如果我们在一个类中定义一个数组,并使用一个方法来设置元素,那么在单独访问这些元素时,我似乎无法打印它们 我已经设置了一个快速类来演示这一点 方法printarayzero返回注意:数组到字符串的转换 方法printLocal是我通常访问单个数组元素的方式,对于本地数组来说,这似乎很好Php 访问类属性时出现意外行为,php,arrays,oop,Php,Arrays,Oop,如果我们在一个类中定义一个数组,并使用一个方法来设置元素,那么在单独访问这些元素时,我似乎无法打印它们 我已经设置了一个快速类来演示这一点 方法printarayzero返回注意:数组到字符串的转换 方法printLocal是我通常访问单个数组元素的方式,对于本地数组来说,这似乎很好 class test { var $a = array(); function fillArray() { $this->a[0] = 'zero';
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->printarayzero()返回结果
存储在元素0中:数组[0]
$test->printLocal()返回结果
存储在元素0中:零
我对OOP还比较陌生,我已经用PHP程序编程一段时间了,我以前从未遇到过这个问题
提前感谢。您的变量在
print\r
中充当字符串部分,请使用此代码
function printArrayZero(){
print_r("Stored in element 0 : {$this->a[0]}");
}
$a = new test();
$a->fillArray();
$a->printArrayZero();
然后请先调用fillArray
方法printarayzero
试试这个代码
function printArrayZero(){
print_r("Stored in element 0 : {$this->a[0]}");
}
$a = new test();
$a->fillArray();
$a->printArrayZero();
或者您可以将数组填充到\u构造函数()
\u构造函数
在创建类对象时调用automatic,然后无需填充数组
方法
$a = new test();
$a->printArrayZero();
试一下:
function printArrayZero()
{
print_r('Stored in element 0 : ' . $this->a[0]);
}
或:
对于后者,请参见:是的,我可以这样做,但我不明白为什么它在本地工作,但在通过属性访问时不工作。我偶然发现了这个问题,因为我有一个长字符串,它访问了很多数组元素,都在双引号内,从程序上讲,这很好,现在看来我必须为每个数组元素打断引号。已编辑-好的,我知道我必须使用大括号。谢谢