Culture générale php ... signification de ->

Mammouth du PHP | 686 Messages

09 sept. 2009, 13:14

Bonjour,
j'ai cherché tant bien que mal sur :google: la signification que peut avoir -> dans le PHP
est ce que quelqun peut m'eclairer ?

Eléphant du PHP | 369 Messages

09 sept. 2009, 13:23

Salut,
Bonjour,
j'ai cherché tant bien que mal sur :google: la signification que peut avoir -> dans le PHP
est ce que quelqun peut m'eclairer ?
Cela concerne les objets (POO):

$instance -> $élément ou $instance -> function(..)

http://www.apprendre-php.com/tutoriels/ ... t-poo.html

@+ bonne lecture ;)

Mammouth du PHP | 686 Messages

09 sept. 2009, 13:59

Merci pour la doc
Je reviens si j'ai pas assimilé quelques trucs :wink:

Mammouth du PHP | 686 Messages

09 sept. 2009, 14:08

Me revoici de ma lecture
// Définition des attributs de la personne 4  
$personne4->nom = 'Martin';  
$personne4->prenom = 'Pierre';  
$personne4->dateDeNaissance = '23-05-1993';  
$personne4->taille = '155';  
$personne4->sexe = 'M';
Cela fonctionne une peu comme un tableau en fait ?

Eléphant du PHP | 369 Messages

09 sept. 2009, 14:29

Re,
Me revoici de ma lecture
// Définition des attributs de la personne 4  
$personne4->nom = 'Martin';  
$personne4->prenom = 'Pierre';  
$personne4->dateDeNaissance = '23-05-1993';  
$personne4->taille = '155';  
$personne4->sexe = 'M';
Cela fonctionne une peu comme un tableau en fait ?
Tout juste... 'fin, presque.

Tu accèdes a un élément d'un tableau par des crochets
Tu accèdes à un élément objet par ->

Mais effectivement ca y ressemble beaucoup.
Ne serait-ce que dans les fonctions de tris etc...

@+ ;)

PS: Tu peux aussi regarder du côté de la SPL Il ésiste la possibilité d'accéder à un tableau de la
même façon qu'un objet et, inversement, d'accéder à un objet comme on accède à un tableau.

EDIT: un 'tit lien en passant: http://www.php.net/manual/fr/class.arrayobject.php
Modifié en dernier par FuZZyLine le 09 sept. 2009, 15:19, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 sept. 2009, 14:43

Alors, la syntaxe que tu utilises, bien que syntaxiquement valide, est assez mauvaise.

Le principe de la notion d'objet est de définir une classe, avec ses attributs et ces méthodes, et la flèche (->) permet d'accéder à ces données définie auparavant.
Donc, il ne faut pas comparer les objets et les tableaux pour comprendre l'intérêt de l'objet.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 686 Messages

09 sept. 2009, 17:02

Donc en resumé, un tableau ne contient que des éléments
alors que les objets contiennent les classes avec leurs attributs c'est bien ca ?

Mammouth du PHP | 991 Messages

09 sept. 2009, 17:06

Je te conseil ce lien : http://hdd34.developpez.com/cours/artpoo/

Bye Hawk (pas tapez plzzzz :D)
DevOps, Symfony4, Hoa

Eléphant du PHP | 369 Messages

09 sept. 2009, 19:14

Donc en resumé, un tableau ne contient que des éléments
alors que les objets contiennent les classes avec leurs attributs c'est bien ca ?
...Si on veut.

Prend cet exemple idiot:
<?php
class classToto
{
   public $item = "Bonjour";

   public function __construct()
   {
   }
}

$arrayToto = Array("item" => "Bonjour");
$objToto = new classToto();

foreach($arrayToto as $key => $value)
{
   echo "Array : ".$key." // ".$value."<br>";
}

foreach($objToto as $key => $value)
{
   echo "Objet : ".$key." // ".$value."<br>";
}
?>
En gros une class comprend des éléments (voir les types public, protégés & privés), des fonctions
(type...), de l'héritage, etc... sans parler des valeurs static...

Les tableaux comprennent une clef & une valeur. Peuvent être multi-dimentionnels, etc...

En revanche, même différents, ils s'apparentent un peu quand on parle tri. D'ou l'éxemple vu plus haut.
Ca reste un exemple, hein, c'était juste pour démontrer cela. -je parle, en cas, biensur, d'accès public -
De mon point de vue, ils sont complémentaires. ...ils sont (si tu tiens à parler de lien), je dirais
cousin issus de germain ;)

voili, voilou...

@+ bon lecture ;)

PS: L'intérêt des class c'est aussi qu'elles peuvent être abstract... mais c'est un autre sujet ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 sept. 2009, 19:17

FuZZyLine, j'avoue avoir du mal à te suivre :?

Dans ton esprit, les classes et les tableaux ont une utilité similaire ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 369 Messages

09 sept. 2009, 19:29

Salut,
FuZZyLine, j'avoue avoir du mal à te suivre :?
Dans ton esprit, les classes et les tableaux ont une utilité similaire ?
Gni? Euh, complémentaires pas similaires :-)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 sept. 2009, 19:41

complémentaires signifie qu'ils œuvrent dans le même but, mais de manière différente.
Hors, la programmation orientée objet est totalement un autre concept.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 369 Messages

09 sept. 2009, 19:48

complémentaires signifie qu'ils œuvrent dans le même but, mais de manière différente.
Hors, la programmation orientée objet est totalement un autre concept.
Bien, si tu veux mais moi je les considère complémentaires.
>Sans objet, je ne ferais assurément pas ce que je fais aujourd'hui
>Sans tableau... j'en parle pas lol

Associer tableaux et objets dans un projet c'est bien mieux (s'entend, c'est ma façon de voir;)

Sur ce, je clos la dessus ca part un brin troll lol

@+ ;)
Modifié en dernier par FuZZyLine le 09 sept. 2009, 20:20, modifié 1 fois.

Mammouth du PHP | 686 Messages

09 sept. 2009, 20:02

Donc en resumé, un tableau ne contient que des éléments
alors que les objets contiennent les classes avec leurs attributs c'est bien ca ?
...Si on veut.

Prend cet exemple idiot:
<?php
class classToto
{
   public $item = "Bonjour";

   public function __construct()
   {
   }
}

$arrayToto = Array("item" => "Bonjour");
$objToto = new classToto();

foreach($arrayToto as $key => $value)
{
   echo "Array : ".$key." // ".$value."<br>";
}

foreach($objToto as $key => $value)
{
   echo "Objet : ".$key." // ".$value."<br>";
}
?>
En gros une class comprend des éléments (voir les types public, protégés & privés), des fonctions
(type...), de l'héritage, etc... sans parler des valeurs static...

Les tableaux comprennent une clef & une valeur. Peuvent être multi-dimentionnels, etc...

En revanche, même différents, ils s'apparentent un peu quand on parle tri. D'ou l'éxemple vu plus haut.
Ca reste un exemple, hein, c'était juste pour démontrer cela. -je parle, en cas, biensur, d'accès public -
De mon point de vue, ils sont complémentaires. ...ils sont (si tu tiens à parler de lien), je dirais
cousin issus de germain ;)

voili, voilou...

@+ bon lecture ;)

PS: L'intérêt des class c'est aussi qu'elles peuvent être abstract... mais c'est un autre sujet ;)
Oula je suis pas assez cultivé pour comprendre ton exemple lol :lol: parce que les "as", "foreach" ... j'e suis pas encore à ce stade lol

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 sept. 2009, 22:01

Pour te donner un exemple bâteau :

Supposons que j'ai un objet (une classe) Voiture. Ma voiture se caractérise par une marque, une couleur, une immatriculation, etc. (ce sont ses attributs) et par des actions comme démarrer le moteur, mettre le clignotant, freiner, etc. (ce sont ses méthodes).
class Voiture {
  public $marque;
  public $couleur;
  public $immat;

  function demarre() {
    echo 'Vrouuuummm';
  }
  function clignotant() {
    ...
  }
  function freine() {
    ...
  }
}
A partir de là, je peux travailler sur une voiture spécifique (une instance), par exemple une ferrari rouge immatriculée en italie :
$maFerrari = new Voiture();
$maFerrari->marque = 'ferrari'; 
$maFerrari->couleur = 'rouge';
...
ou une lada rose.... (ouais ben on choisit pas toujours hein ;))
$maPoubelle = new Voiture();
$maPoubelle->marque = 'lada'; 
$maPoubelle->couleur = 'rose bonbon avec des poids verts';
...

Et je peux manipuler l'un comme l'autre :
$maFerrari->demarre(); // Ma ferrari démarre dans un grand "Vrouuuummm"
$maFerrari->repeindre("noir"); // Parce qu'en noir aussi c'est classe ;p
$maPoubelle->vaALaCasse(); // Ta lada
C'est quand même beaucoup plus puissant qu'un tableau ;) Et tu peux l'adapter à tout et n'importe quoi... une classe MessageDeForum avec les attributs auteur, date, message et les méthodes poster(), editer() ; une classe Film avec un titre, un réalisateur, des méthodes projeter(), rembobiner(), etc.