JeuWeb - Crée ton jeu par navigateur
[Résolu][POO] recuperer un tableau - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][POO] recuperer un tableau (/showthread.php?tid=2896)

Pages : 1 2


[Résolu][POO] recuperer un tableau - Asther - 16-08-2008

Bon je capitule pour ce soir,[/quote]

Je vous expose le problème, j'aimerais beaucoup pouvoir récupérer le contenu du tableau $var[] en dehors de cette classe

j'ai beau essayer mais rien a faire.
Code PHP :
<?php 
class Iterate{

public
$var;

function
IterateThis($req,$champs){


$this->search = new Iteration($req);

foreach(
$this->search as $this->clef => $this->occurences) {
$this->resultat[] = $this->occurences;
}

if(!
$this->resultat){
print
'resultat inéxistant';
exit();
}

$this->result = new RecursiveIteratorIterator(new Tableau_Iterator($this->resultat,1));


foreach(
$this->resultat AS $this->clef=>$this->occurences){

for(
$i = 0; $i < count($champs); $i++){//je calcule le nombre d'entrée a recherché contenu das le array "champs"

$this->receipt = $champs[$i];
$var[$i] = $this->occurences[$this->receipt].' ';
print
$var['1'];
}
}
return
$var;//<----rarghh!
}
}

et je voudrais donc la récupérer dans une autre méthode qui ne découle pas de cette classe.
il me manque un truc mais la doc' PHP5 c'est pas facile a trouver mis a part manuelphp, mais lorsque l'ont ne sait pas trop ce que l'ont cherche... :/
enfin bref, si vous avez une solution chui' preneur ^^


RE: [POO] recuperer un tableau - Asther - 16-08-2008

erff tu veut dire que je doit l'appeler comme ca?
Code PHP :
<?php 
$Iterate
->var
depuis une autre methode?
ca me parait bizzare tu peut me faire un exemple vite fait de l'appel?


RE: [POO] recuperer un tableau - Asther - 16-08-2008

bon, c'est bien ce que j'avais fait avec new mais rien a faire ca ne veut pas, je n'arrive pas a le recuperer.
je re verrais ca demain au clair,
Merci pour ton aide ^^


RE: [POO] recuperer un tableau - Asther - 16-08-2008

oui j'ai fait comme tu m'as dit, mais je laisse de coté pour ce soir, je reprendrais ça au clair a tete reposé demain.
je pense que ça doit etre bancale au niveau de mes arguments.


RE: [POO] recuperer un tableau - z3d - 16-08-2008

Je doute que tu puisses utiliser var comme nomenclature, c'est une mot-clef réservé Confused
Avec une coloration syntaxique, tu l'aurais vu direct; donc je te conseil déjà de changer le nom de cette variable.

Ce qui donne ce qui suit :
Code PHP :
<?php
class Iterate
{
public
$variable;

private
$search;
private
$resultat;

function
IterateThis($req, $champs)
{
$this->search = new Iteration($req);

foreach(
$this->search as $this->clef => $this->occurences)
{
$this->resultat[] = $this->occurences;
}

if(!
$this->resultat) {
print
'resultat inéxistant';
exit();
}

$this->result = new RecursiveIteratorIterator(new Tableau_Iterator($this->resultat, 1));

foreach(
$this->resultat AS $this->clef => $this->occurences)
{
// Je calcule le nombre d'entrées a rechercher contenu dans le array "champs"
$iCount = count($champs);
for(
$i = 0; $i < $iCount; $i++)
{
$this->receipt = $champs[$i];
$this->variable[$i] = $this->occurences[$this->receipt].' ';
print
$variable['1'];
}
}

return
$this->variable;
}
}

?>



RE: [POO] recuperer un tableau - z3d - 16-08-2008

$var oui !
Mais certainement pas $this->var !

De plus, petit hors sujet mais qui a son sens dans ce post tout de même.

Je commence, vraiment, à être désolé de voir seulement des public pour les données membres d'une classe.
A croire que sur le net, même les pro oublie la notion d'encapsulation des données.
Vous vous en rendrez compte tout seul, le jour où vous allez devoir faire de l'héritage, cela ne marchera pas comme vous le voudrez et vous allez vous tirer les cheveux pour comprendre ce qu'il se passe Sad


RE: [POO] recuperer un tableau - Sephi-Chan - 16-08-2008

Ben, en parlant d'encapsulation, j'ai encore du mal à déterminer quand un attribut doit être protéger/privé ou public. En ce moment je mets du privé partout car je trouve les getXXX() et setXXX() sexy, mais j'avoue que si quelqu'un a une explication, je suis preneur. Smile


Sephi-Chan


RE: [POO] recuperer un tableau - Sephi-Chan - 16-08-2008

Ben dans mon cas, en dehors de l'utilisation d'un Framework, je procédais comme cela :

Code PHP :
<?php 
$user
= new User();
$user->setLogin($_POST['login']);
$user->setPassword($_POST['password']);
$user->load();

J'aimais bien, ça me permet d'avoir un code clair. J'utilise ensuite l'objet $user, que je mets en session. Quand je modifie quelque chose, j'utilise les $user->setXXX($xxx); puis je fais un $user->save();


Sephi-Chan


RE: [POO] recuperer un tableau - z3d - 16-08-2008

Dans tous langages, il y a des mots clefs et on le sait tous, l'utilisation de ceux-ci est interdite sauf si le langage le permet comme php apparement mais quand on veut éviter de voir apparaitre des bogues, on les évite.
MySQL aussi permet l'utilisation de mot-clefs mais a une condition.

Exemple :
Code PHP :
<?php 
// On a un champ datetime qui a enregistré la date et l'heure de connection et on veut récupérer ce champ

// L'éxécution de la requête suivante échouera !!
$sSQL = "SELECT datetime FROM utilisateur WHERE id = 1";
// L'éxécution de la requête suivante sera fonctionnelle
$sSQL = "SELECT `datetime` FROM utilisateur WHERE id = 1";
Vous vous êtes jamais demandé pourquoi PMA vous retourner toujours vos champs englobé de ces quotes ? Wink

Donc, pour finir, un conseil que chacun prendra comme il le veut : ne jamais utiliser de mot clefs


Ensuite, accéder aux données cela peut arriver n'importe où, n'importe quand.
Code PHP :
<?php
class Utilisateur
{
private
$sNom;

public
__contruct($sNom)
{
$this->sNom = $sNom;
}

public
getNom()
{
return
$this->sNom;
}

}

$oUtilisateur = new Utilisateur('Pierre');
echo
'Salut '.$oUtilisateur->getNom().' et bienvenue sur JeuPHP !';

?>



RE: [POO] recuperer un tableau - Sephi-Chan - 16-08-2008

Pourquoi ce topo sur les noms réservés (bien que ça ne puisse pas faire de mal de le rappeler Wink) ? D'autant que datetime n'a pas l'air d'un nom réservé s'il on se réfère à MySQL - Cas des mots réservés MySQL.

Si j'utilise ma méthode, c'est justement pour avoir une API très normalisée. Que l'on s'inscrive, que l'on se connecte ou que l'on édite son profil, ça fait toujours appel à load() ou à save(). Je n'ai pas de login($login, $password), ni de register($login, $password, $email, etc.).

M'enfin, maintenant que je m'essaye aux Frameworks, la question ne se pose plus trop puisqu'ils ont leur fonctionnement.

Ma question, c'est plutôt : quand décide-t-on d'utiliser private/protected ou public. Y a-t-il une astuce ?


Sephi-Chan