[Résolu] Je ne comprends pas ce fragment de code - 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] Je ne comprends pas ce fragment de code (/showthread.php?tid=2466) |
[Résolu] Je ne comprends pas ce fragment de code - leni - 23-02-2008 Bonjours tout le monde, j'ai telecharger un pack avec des scripts libres, et j'avoue être en complète galère pour el comprendre ... SI quelqu'un peu me reformuler ses quelques lignes, je lu en serai vriament reconnaissant Code PHP :
Code PHP :
Seux là, à part des petits signes de ponctuation, j'ai glodabelement compris, maintenant, on attaque une langue entre le chinois le php portuguais Code PHP :
et mon preferer : Code PHP :
je remercie infiniment les bilingues bonne journée, leni RE: heuu ... quelqu'un peu me traduire ? - Spoutnik - 23-02-2008 Bonjour, Dans ta première ligne, tu as une structure conditionnelle "simplifiée": ça correspond à un "if" mais en version rapide. Après comme je n'utilise jamais cette écriture (d'ailleurs, si on pouvait m'expliquer son intérêt mise à part le fait qu'elle est plus courte, ça serait gentil ^^) je ne saurais pas te traduire exactement mais en cherchant un peu ça doit se trouver Bonne journée, Spoutnik, qui s'excuse du peu d'informations qu'il peut te donner ^^'. RE: heuu ... quelqu'un peu me traduire ? - Zboy74 - 23-02-2008 Code PHP :
En gros : si $TMPL['unq_pv_0_daily'] est supérieur à $TMPL['unq_pv_max_daily'], alors $TMPL['unq_pv_max_daily'] prend pour valeur $TMPL['unq_pv_0_daily'], sinon il garde sa valeur originelle. Et moi non plus, à part la syntaxe plus courte, je ne voit pas vraiment d'utilité ici... on m'avait même dit que cette syntaxe est plus lente qu'un simple if{...}, par exemple dans une boucle avec beaucoup d'itérations apparemment ça se ressent (à tester). Code PHP :
Ca, c'est de la syntaxe objet. Ce code doit forcément être à l'intérieur d'une classe, d'ailleurs. $this représente l'objet en cours, c'est à dire l'instance de la classe en question. Cette objet va déclencher la méthode 'do_skin' avec le paramètre 'stats_review' ... après il faudrait voir le code de la classe plus en profondeur... Code PHP :
Là aussi, objet encore, tu doit avoir une classe qui gère les accès BDD (du PEAR? Je me souviens plus de la syntaxe ). Il faudrait regarder la méthode 'select_limit' de cette classe, qui accepte apparement comme arguments ta requête + quelques autres trucs... __FILE__ et __LINE__ sont des constantes PHP qui te donne le nom fichier PHP en cours de traitement et la ligne, utile la plupart du temps pour pister les erreurs. Code PHP :
Là, en gros, la méthode 'fetch_array' de ta classe pour les bases de données va te renvoyer à priori un tableau associatif, que ton 'list()' va décomposer dans le tableau $TMPL. Le 'while' va permettre finalement de parcourir entièrement ce tableau. Méthodes plus ou moins courante de 'parser' le résultat d'une requête. Bonne chance en touts cas! PS : juste par curiosité, où as-tu trouvé ces sources? ZBoy RE: heuu ... quelqu'un peu me traduire ? - loka - 23-02-2008 Code PHP :
C'est une opération trinaire (un if simplifié comme l'a dis Spoutnik). Voila ce que ça veut dire : si l'opération booléenne $TMPL['unq_pv_0_daily'] > $TMPL['unq_pv_max_daily'] renvoie vrai, alors $TMPL['unq_pv_max_daily'] = $TMPL['unq_pv_0_daily'] sinon $TMPL['unq_pv_max_daily'] = $TMPL['unq_pv_max_daily']. Après, sans savoir ce que veulent dire les variables, je ne peux pas t'expliquer plus ^^ Code : $TMPL['reviews'] .= $this->do_skin('stats_review'); Là c'est de l'objet (php5). tu appliques la méthode do_skin() à ton objet (this étant ton objet correspondant à la classe d'où vient ce morceau de code). Code : $result = $DB->select_limit("{$query} ORDER BY RAND()", 2, 0, __FILE__, __LINE__); Pareil, ton objet DB (pour DataBase je suppose), tu lui appliques la méthode select_limit qui prend pour arguments un requete ainsi que 4 autres paramétres (regarder la fonction plus en détail pour savoir ce que sont les 2ème et 3èmes paramètres). Les 2 derniers paramètres te permettent de connaitre le fichier et la ligne lorsque ta requête "plante" Code : while (list($TMPL['id'], $TMPL['date'], $TMPL['review']) = $DB->fetch_array($result)) Là il y a un problème, tu as du oublier un bout de code car il y a une parenthèse en trop EDIT : pas assez rapide ^^ RE: heuu ... quelqu'un peu me traduire ? - leni - 23-02-2008 loka a écrit : La poo, je 'men sert pas pour l'instant, mais je trouve cette structure très interessante Code PHP :
j'ai bien compris ? c'est sa ? RE: heuu ... quelqu'un peu me traduire ? - Eluox - 23-02-2008 En fait, je viens de decouvrir sa ya 2 jours et j'adore perso Code PHP :
Renvera : test est plus grand que essai, RE: heuu ... quelqu'un peu me traduire ? - Plume - 23-02-2008 Vous pouvez pas juste représenter l'équivalent ? Code : $var = ($essai > $test ) ? "Coucou, essai est plus grand que test" : 'test est plus grand que essai'; Code : if( $essai > $test ) Cordialement, RE: heuu ... quelqu'un peu me traduire ? - Eluox - 23-02-2008 Arf, jl'avais pas ecris ? J'y comptais, desolé RE: heuu ... quelqu'un peu me traduire ? - leni - 24-02-2008 merci beaucoup pour votre aide bonne soirée, leni |