Classe abstraite et définition d'attributs dans celle ci

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Classe abstraite et définition d'attributs dans celle ci

Re: Classe abstraite et définition d'attributs dans celle ci

par stealth35 » 06 janv. 2011, 12:09

et jamais tu fait de new ChampOptionnel a un moment dans ton code ? comment tu accèdes a genereId ?

Re: Classe abstraite et définition d'attributs dans celle ci

par Damador » 06 janv. 2011, 11:57

Ok, merci à vous deux pour ceux qui cherche je leur mets un bout de code :

//declaration
public static $id=0;

//utilisation (champOptionnel étant le nom de ma classe)
ChampOptionnel::$id

//incrémentation
ChampOptionnel::$id += 1;

Merci et bonne journée.

Re: Classe abstraite et définition d'attributs dans celle ci

par sadeq » 06 janv. 2011, 11:49

Bonjour,

Les membres statiques déclarés par le modificateur 'static' ne sont pas instanciés et sont donc accessibles par les instances ou les filles d'une même classe directement via la classe mère.
* Pour y accéder depuis un objet instance de la classe, il faut utiliser comme référence, le nom de la classe en tant que chemin d'accès comme ça: MaClasse::membreStatic.
* Pour y accéder dans le contexte descriptif de la classe elle-même, il faut utiliser une référence cyclique comme chemin d'accès de type : self::membreStatic.
* Pour y accéder via une sous-classe fille, il faut utiliser une référence d'héritage comme chemin d'accès à savoir : parent::membreStatic.

En clair, voici des exemples

Re: Classe abstraite et définition d'attributs dans celle ci

par Damador » 06 janv. 2011, 11:34

Oui mais voyez vous le problème étant que comme je déclare mon attribut étant égal à 0 :
public $id = 0;

à Chaque création d'un objet fils, mon $id se remet à 0 et même si je l'incrémente cela ne change rien. : x

Re: Classe abstraite et définition d'attributs dans celle ci

par stealth35 » 06 janv. 2011, 11:28

aucun raison particulière je m'en servais auparavant dans d'autre classe ce qui n'est plus le cas maintenant. Cela change-t'il quelque chose?
oui t'as pas acces via $this en static, enlevé le je pense que c'est la source de tes problèmes et qu'il n'est pas justifié

Re: Classe abstraite et définition d'attributs dans celle ci

par Damador » 06 janv. 2011, 11:18

aucun raison particulière je m'en servais auparavant dans d'autre classe ce qui n'est plus le cas maintenant. Cela change-t'il quelque chose?

Re: Classe abstraite et définition d'attributs dans celle ci

par stealth35 » 06 janv. 2011, 11:09

pourquoi avec mis id en static ?
public static $id;

Classe abstraite et définition d'attributs dans celle ci

par Damador » 06 janv. 2011, 10:56

Bonjour, voila j'ai un petit problème j'ai une classe abstraite dans laquelle j'ai définis des attributs voici une partie de code :

public static $id;
public $label;
public $nomRecup;
public $nomRecupSansCrochet;

Je voudrais savoir si il est normal que je n'arrive pas a appeler l'id dans mes méthodes de cette classe :
public function genereId()
{
$nomWithoutSpaces = str_replace(' ','',$this->label);
$this->nomRecupSansCrochet = $this->stripAccents($nomWithoutSpaces).'_'.ChampOptionnel.$this->id;
$this->nomRecup = $this->nomRecupSansCrochet.'[]';
$this->incrementeId();
return $this->nomRecup;
}

ici impossible de récuperer l'id. Ensuite j'ai une autre question est-t'il possible d'incrémenter une variable static définis dans une classe. je m'éxplique j'ai mon id et je voudrais que pour chaque champOptionnel avoir un id différent. Comme pourrais-je faire?