Bu özellikle SimpleXML ile, bir çok kullanılan gördüm.
Şudur:
$row->unixtime
Bu yapıyor gibi sadece aynı??
$row[unixtime]
Bu ne denir, neden / nasıl kullanılmalıdır?
Object Oriented Programming with PHP
$row->unixtime
$ Row bir amacıdır. unixtime o nesnenin bir özelliğidir.
$row[unixtime] // I hope you meant $row['unixtime'];
$ Satır bir (ortak) dizidir. unixtime bu dizi bir anahtardır.
'Ne Nesneler' sorma biraz muğlak.
OOP ile başlarken önemsiz bir görev değildir. Bu sözdizimi ve nüansları, avantajları anlamak için biraz daha zaman öğrenmek için iyi bir süre alır ve yıl (muhtemelen) aslında etkili bir şekilde kullanmak için.
Bu tamamen farklı.
İlki, $row->unixtime
Eğer ortak değişken $unixtime
sınıfın nesne / örneğinin $row
erişme anlamına gelir. Bu Object Oriented Programming.
Örnek:
class example{
public $unixtime = 1234567890;
}
$row = new example();
echo $row->unixtime; // echos 1234567890
The second one, is to get the key 'unixtime'
of the array $row
. This is called Associative Array. Örnek:
$row = array(
'unixtime' => 1234567890
);
echo $row['unixtime']; // echos 1234567890
You can easily convert between objects and arrays by using the (array)
and (object)
casts. Örnek:
$row = array(
'unixtime' => 1234567890
);
$row = (object)$row;
echo $row->unixtime; // echos 1234567890
Off-topic: I actually missed out the unix epoch time 1234567890 in February.
Hayır, onlar aynı değiliz. It yaklaşık object oriented programming.
->
bir amacı elemanı erişim gösterir. Örneğin:
class Test {
public $foo;
public $blah;
}
$test = new Test;
$test->foo = 'testing';
[]
true dizileri tarafından kullanılan bir dizi erişim operatörüdür. Nesneleri de onlar ArrayAccess
a> arabirimini uygulamak durumunda kullanabilirsiniz:
class Test2 implements ArrayAccess {
private $foo = array();
public function offsetGet($index) { return $this->foo[$index]; }
// rest of interface
}
$test2 = new Test2
$test2['foo'] = 'bar';
Bu muhtemelen PHP PHP'nin özelliklerin birçoğu, sözdizimi ve operatörler, ve PHP'nin fonksiyonları hatta birçok C. kökleri var yazıldığı aslında ne the C language çekti başka bir deyim, bu