Page 1 sur 2

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

Posté : 09 sept. 2009, 13:14
par sylvaing26
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 ?

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

Posté : 09 sept. 2009, 13:23
par FuZZyLine
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 ;)

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

Posté : 09 sept. 2009, 13:59
par sylvaing26
Merci pour la doc
Je reviens si j'ai pas assimilé quelques trucs :wink:

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

Posté : 09 sept. 2009, 14:08
par sylvaing26
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 ?

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

Posté : 09 sept. 2009, 14:29
par FuZZyLine
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

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

Posté : 09 sept. 2009, 14:43
par zeus
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.

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

Posté : 09 sept. 2009, 17:02
par sylvaing26
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 ?

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

Posté : 09 sept. 2009, 17:06
par thehawk
Je te conseil ce lien : http://hdd34.developpez.com/cours/artpoo/

Bye Hawk (pas tapez plzzzz :D)

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

Posté : 09 sept. 2009, 19:14
par FuZZyLine
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 ;)

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

Posté : 09 sept. 2009, 19:17
par zeus
FuZZyLine, j'avoue avoir du mal à te suivre :?

Dans ton esprit, les classes et les tableaux ont une utilité similaire ?

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

Posté : 09 sept. 2009, 19:29
par FuZZyLine
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 :-)

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

Posté : 09 sept. 2009, 19:41
par zeus
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.

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

Posté : 09 sept. 2009, 19:48
par FuZZyLine
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

@+ ;)

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

Posté : 09 sept. 2009, 20:02
par sylvaing26
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

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

Posté : 09 sept. 2009, 22:01
par Ryle
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.