[RESOLU] Comment utiliser dans une classe, une variable déclarée en dehors ?

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 : [RESOLU] Comment utiliser dans une classe, une variable déclarée en dehors ?

Re: [RESOLU] Comment utiliser dans une classe, une variable déclarée en dehors ?

par two3d » 22 juin 2020, 21:50

OK, merci, j'avais essayé mais avec le $ et en protected :ordi: |*()

Re: [RESOLU] Comment utiliser dans une classe, une variable déclarée en dehors ?

par Saian » 22 juin 2020, 12:15

Oui tu peux définir la propriété depuis l'extérieur de la classe mais c'est sans le $ devant le nom de la propriété ($MaClass->var1= 'valeur';) et à condition que la propriété soit public. Sinon généralement on fait plutôt des getters et des setters.

Re: [RESOLU] Comment utiliser dans une classe, une variable déclarée en dehors ?

par two3d » 20 juin 2020, 17:50

Je suis passé par le constructeur comme préconisé (comme avec les fonctions au final). Merci
$MaClass = new MaClass("ma var 1","ma var 2");

Re: Comment utiliser dans une classe, une variable déclarée en dehors ?

par two3d » 20 juin 2020, 11:36

Merci pour l'aide et le lien, en lisant un peu les commentaires sur PHP j'ai vue que j pouvais peut être définir mes variables après l'appel de ma classe, ex:
class MaClass
{
  /**
   * je souhaite utiliser mes variables externes dans $var1 et $var2
   * peut être que l'utilisation de protected n'est pas adapté....
   */
   
  protected $var1;
  protected $var2;
}

$MaClass = new MaClass();
$MaClass->$var1="ma variable1";
$MaClass->$var2="ma variable2";
Est ce correct de faire comme ça ?

Re: Comment utiliser dans une classe, une variable déclarée en dehors ?

par Saian » 19 juin 2020, 10:00

Salut two3d, define ça permet de créer une constante. Les constantes sont accessibles partout mais ne peuvent pas être modifiée.
https://www.php.net/manual/fr/language.constants.php

Quand tu passes une variable à une fonction ou méthode, elle n'est utilisable que dans le scope de la fonction/méthode (non elle ne devient pas globale). Si tu veux l'utiliser dans différentes méthodes de ton objet, il faut soit la passer en paramètre à chaque méthode, soit la stocker comme propriété de l'objet (accessible via $this).

Une propriété private ne sera accessible en écriture et lecture que dans la classe où elle est définie.
Une propriété protected sera accessible en écriture et lecture dans la classe où elle est déclarée et dans ses éventuels enfants (extends).
Une propriété public sera accessible en écriture et lecture aussi bien dans la classe où elle est définie que dans ses enfants ou encore par manipulation externe à la classe.
https://www.php.net/manual/fr/language. ... bility.php

Après le comment gérer dans ton code, ça dépend vraiment de comment ces variables sont alimentées et de ce que tu veux en faire dans la classe. Mais à priori à la vu de ton exemple de code, les passer au constructeur et les mémoriser dans les deux propriétés de ton objet devrait le faire.

Re: Comment utiliser dans une classe, une variable déclarée en dehors ?

par two3d » 19 juin 2020, 09:56

Merci pour ta réponse.

C'est une classe toute faite que je me sert.

Donc en les passant par le constructeur elles deviennent globales en gros ? Comme pour les utiliser dans les fonctions ?

En cherchant sur le web hier j'ai vue qu'on pouvait utiliser une variable à l'intérieur d'une classe avec define(), peut être une solution simple pour moi ?

Re: Comment utiliser dans une classe, une variable déclarée en dehors ?

par Spols » 19 juin 2020, 08:39

Il faut les passer dans ton constructeur.

Mais si tu es allergique au classe, autant ne pas les utliser. il doit être possible de faire ce que tu veux en procédurale.

Comment utiliser dans une classe, une variable déclarée en dehors ?

par two3d » 18 juin 2020, 23:04

Bonjour,

**Ne pas prendre mal le message, merci.**

je suis null en classe PHP et ne souhaite pour le moment pas apprendre à les gérer*, seriez vous me dire comment utiliser ma variable externe dans ma classe PHP s'il vous plaît ?

*Si vous connaissez un tuto rapide et simple à comprendre sur les class PHP car tous les tutos que j'ai pu commencer à lire m'ont donné des boutons et j'ai abandonné car très long.


Ma classe PHP (un bout):
$var1ext="ma variable1";
$var2ext="ma variable2";

class MaClass
{
	/**
	 * je souhaite utiliser mes variables externes dans $var1 et $var2
	 * peut être que l'utilisation de protected n'est pas adapté....
	 */
	 
	protected $var1 = $var1ext;
	protected $var2 = $var2ext;
}

Bonne soirée