2009-11-04 41 views
2

我見過這個用法很多,特別是使用SimpleXML。

是這樣的:

$row->unixtime 

只是同這樣???

$row[unixtime] 

這是什麼叫,爲什麼/應該如何使用?

回答

24

Object Oriented Programming with PHP

$row->unixtime 

$行是一個對象。 unixtime是該對象的一個​​屬性。

$row[unixtime] // I hope you meant $row['unixtime']; 

$ row是一個(關聯)數組。 unixtime是該陣列中的關鍵。

問'對象是什麼'有點含糊。

開始使用OOP Object Oriented Programming(維基百科)不是一個簡單的任務。學習語法和細微差別需要很長的時間,有更多的時間去理解優點,以及多年(可以說)實際上有效地使用它。

+1

是的,使用'$ row ['unixtime']'而不是'$ row [unixtime]' – mauris 2012-11-09 02:34:46

6

不,他們不一樣。這是關於object oriented programming

->指示訪問對象成員。例如:

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'; 
10

它完全不同。

第一個$row->unixtime表示您正在訪問類$row的對象/實例的公共變量$unixtime。這是面向對象編程

實施例:

class example{ 
    public $unixtime = 1234567890; 
} 

$row = new example(); 
echo $row->unixtime; // echos 1234567890 

第二個,是獲取陣列$row的關鍵'unixtime'。這被稱爲關聯陣列。例如:

$row = array(
      'unixtime' => 1234567890 
     ); 
echo $row['unixtime']; // echos 1234567890 

您可以對象和數組之間通過(array)(object)鑄件輕鬆轉換。例如:

$row = array(
      'unixtime' => 1234567890 
     ); 
$row = (object)$row; 
echo $row->unixtime; // echos 1234567890 

題外話:其實我錯過了Unix紀元時間1234567890二月。

3

爲了讓你的回答簡短而甜蜜......

$row->unixtime 

這是一個對象

$row[unixtime] 

這是一個陣列

1

很可能另一個成語從拉它實際上是用PHP編寫的。許多PHP的特性,語法,a nd運算符,甚至很多PHP的本地函數,都有它的根。C:

相關問題