fonction statique dans une classe non statique

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 : fonction statique dans une classe non statique

Re: fonction statique dans une classe non statique

par Ryle » 13 avr. 2015, 13:54

Dans la mesure où tu retourne une instance de la classe que tu ne veux pas instancier (en passant par la méthode static), il n'y a effectivement pas d'intérêt à ce mode de fonctionnement. Le mieux pour cela est de passer par le constructeur de la classe :
$oMaClasse = new maClass('name', 1);

Re: fonction statique dans une classe non statique

par nestecha » 12 avr. 2015, 23:11

class maClass {
	private $iID;
	private $sName;

	public function setId($iID) {
		$this->iID = $iID;
	}

	public function setName($sName) {
		$this->sName = $sName;
	}

	public static function getObjectWithParams($sName, $iID) {
		$oMaClasse = new maClass();
		$oMaClasse->setId($iID);
		$oMaClasse->setName($sName);

		return $oMaClasse;
	}
}

$oMaClasse = maClass::getObjectWithParams('name', 1);
Ca n'a effectivement pas grand intérêt dans ce cas, mais en gros voilà comment faire.

Re: fonction statique dans une classe non statique

par sadeq » 04 avr. 2015, 21:38

En principe on crée des fonctions statiques pour pouvoir les appeler via leur classe sans devoir instancier cette dernière dans un objet. Cet appel "direct" est sous la forme CLASSE::FONCTION. On utilise cette forme de conception pour bénéficier de fonctions globales et/ou un espace de données statique unique et partagé.
Donc je ne vois pas pourquoi vous avez besoin de mélanger des fonctionnalités spécifiques à un objet et donc non statiques avec d'autres statiques qui ne doivent être spécifiques mais au contraire d'utilité globale ?

fonction statique dans une classe non statique

par Invité » 02 avr. 2015, 15:43

Bonjour a tous,

Je souhaite savoir si c'est possible d'appeler une fonction non statique dans une fonction statique.

J'ai ceci:
class maClasse 
{
     public function laNonStatique ()
     {

     }
     public static function laStatique ()
     {
               //comment appeler laNonStatique () ici ? 
     }
}
En vous remerciant pour vos réponses.