2009-11-04 5 views
2

Je l'ai vu beaucoup utilisé, surtout avec SimpleXML.

Est-ce:

$row->unixtime 

simplement la même chose que faire ça ???

$row[unixtime] 

Comment cela s'appelle-t-il, pourquoi/comment l'utiliser?

Répondre

24

Object Oriented Programming with PHP

$row->unixtime 

$ row est un objet. Unixtime est une propriété de cet objet.

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

$ row est un tableau (associé). Unixtime est une clé dans ce tableau. Demander «Quels objets sont» est un peu vague.

Mise en route avec OOP est pas une tâche triviale. Il faut un bon moment pour apprendre la syntaxe et les nuances, un peu plus de temps pour comprendre les avantages, et des années (discutablement) pour l'utiliser efficacement.

+1

Oui, utilisez '$ row ['unixtime']' au lieu de '$ row [unixtime]' – mauris

6

Non, ce ne sont pas les mêmes. Il s'agit de object oriented programming.

-> indique l'accès à un membre d'objet. Par exemple:

class Test { 
    public $foo; 
    public $blah; 
} 

$test = new Test; 
$test->foo = 'testing'; 

[] est un opérateur d'accès au tableau, utilisé par de véritables tableaux. Les objets peuvent également l'utiliser si elles mettent en œuvre l'interface 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

Il est tout à fait différent.

Le premier, $row->unixtime signifie que vous accédez à la variable publique $unixtime de l'objet/instance de la classe $row. Ceci est Programmation orientée objet.

Exemple:

class example{ 
    public $unixtime = 1234567890; 
} 

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

Le second, est d'obtenir la 'unixtime' clé du tableau $row. Ceci est appelé Tableau associatif. Exemple:

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

Vous pouvez facilement convertir entre les objets et tableaux en utilisant les (array) et (object) moulages. Exemple:

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

Hors-sujet: En fait, je manqué le temps d'époque unix 1234567890 en Février.

3

Pour que votre réponse courte et douce ...

$row->unixtime 

C'est un objet

$row[unixtime] 

C'est un tableau

1

Il est probable un autre idiome tiré de the C language, qui est en fait ce que PHP est écrit. Beaucoup de fonctionnalités de PHP, la syntaxe, un Les opérateurs nd, et même beaucoup de fonctions natives de PHP, ont leurs racines dans C.

Questions connexes