heritage, fonction static et "self"

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 : heritage, fonction static et "self"

par Invité » 12 janv. 2007, 12:02

Merci pour le lien et désolé pour le style SMS.

par titerm » 12 janv. 2007, 10:13

Il n'y a pas de d'évaluation faite sur les membres static, tout les références sont effectué a la compile.

voir ici pour les évolutions possible.


voir la doc de static
http://fr.php.net/manual/fr/language.oop5.static.php
En fait, les appels de méthodes statiques sont résolus au moment de la compilation. Lorsque l'on utilise un nom de classe explicite, la méthode est déjà identifiée complètement et aucune notion d'héritage n'est appliquée. Si l'appel est effectuée par le mot clé self, alors self est traduit en la classe courante, qui est la classe appartenant au code. Ici aussi, aucune notion d'héritage n'est appliquée.


Pas de solution à ton problème.

par Xenon_54 » 12 janv. 2007, 05:44

Pour l'instant, il n'y a aucun moyen de déterminer à partir de quelle classe une méthode statique a été appellée.

Voir les commentaires sur php.net:
Seems like static function always belong to its class.
I have been thus far unable to determine a reliable way to get the actual class from a static method.
http://www.php.net/get_class

par the dreamer » 12 janv. 2007, 03:16

Vu que la fonction get_class est appelée à partir de la classe parent, n'est-il pas normal qu'il retourne le nom de la classe parent ?? :wink:

par Xenon_54 » 11 janv. 2007, 22:17

self serait alors approprié non?

par Cyrano » 11 janv. 2007, 22:12

Modération :
OvEr, nous sommes dans un forum francophone.
Tu as devant toi un clavier complet et tu disposes de la place que tu désires pour écrire.
Merci de rédiger tes messages dans un français intelligible pour tous.
Ce sera bénéfique pour ta demande d'aide.

Merci de prendre le temps de lire les règlements.

par OvEr » 11 janv. 2007, 20:47

Non, Parent c classeA si g t dans classeB mais la c est le contraire presque.

par Xenon_54 » 11 janv. 2007, 20:46

parent?

heritage, fonction static et "self"

par OvEr » 11 janv. 2007, 20:10

Bonjour, j ai un petit problème auquel il doit exister des millions de solution mais je cherche la plus propre :)


Mon probleme :
class classeA {

function __construct(){}

public static function methodA()
{
$object = new self;
echo get_class( $object );
}
}

class classeB extends classeA {

function __construct(){}
}

classeB::methodA();

//Affiche :
//classeA

Alors que je passe par la classeB pour l'appeler...
Comment dois-je faire pour recuperer le bon nom de classe sans passer quoi que ce soit en parametre ?