我见过这个用过,特别是SimpleXML。
这是:
$row->unixtime
就像这样做???
$row[unixtime]
这叫什么,为什么/应该如何使用?
答案 0 :(得分:24)
Object Oriented Programming with PHP
$row->unixtime
$ row是一个对象。 unixtime是该对象的属性。
$row[unixtime] // I hope you meant $row['unixtime'];
$ row是一个(关联)数组。 unixtime是该阵列中的关键。
询问'对象是什么'有点模糊。
开始使用OOP并非易事。学习语法和细微差别需要花费很长时间,有时需要更多时间来理解它们的优点,并且需要多年(可以说)才能有效地使用它。
答案 1 :(得分:10)
完全不同。
第一个$row->unixtime
表示您正在访问类$unixtime
的对象/实例的公共变量$row
。这是面向对象编程。
示例:
class example{
public $unixtime = 1234567890;
}
$row = new example();
echo $row->unixtime; // echos 1234567890
第二个是获取数组'unixtime'
的键$row
。这称为关联数组。例如:
$row = array(
'unixtime' => 1234567890
);
echo $row['unixtime']; // echos 1234567890
您可以使用(array)
和(object)
强制转换轻松地在对象和数组之间进行转换。例如:
$row = array(
'unixtime' => 1234567890
);
$row = (object)$row;
echo $row->unixtime; // echos 1234567890
偏离主题:我实际上错过了2月份的unix纪元时间1234567890.
答案 2 :(得分:6)
->
表示正在访问对象成员。例如:
class Test {
public $foo;
public $blah;
}
$test = new Test;
$test->foo = 'testing';
[]
是一个数组访问运算符,由true数组使用。如果对象实现ArrayAccess
接口,也可以使用它:
class Test2 implements ArrayAccess {
private $foo = array();
public function offsetGet($index) { return $this->foo[$index]; }
// rest of interface
}
$test2 = new Test2
$test2['foo'] = 'bar';
答案 3 :(得分:3)
让你的答案简短而甜蜜......
$row->unixtime
这是对象
$row[unixtime]
这是一个数组
答案 4 :(得分:1)
这可能是从the C language中提取的另一个习惯用法,这实际上就是PHP编写的内容。许多PHP的功能,语法和运算符,甚至PHP的许多本机函数都源于C语言。