hum, où est l'erreur dans ma classe? [Php][Classe][Debutant] - PHP - Programmation
Marsh Posté le 27-09-2005 à 17:13:06
Déjà dans le constructeur, y'a un bug :
$this->name = $nom; |
Ensuite, je vois pas l'interêt de mettre des trucs genre "the_iq" :
function Etudiant($name = "etudiant", $IQ = 0) { |
C'est une erreur de débutant qu'on voit souvent : ils croivent (du verbe croiver) que mettre un nom de paramètre égale à un nom de membre pose problème. Or, il n'en est rien...
ensuite pour le problème, faut mettre :
function isClever() |
Marsh Posté le 27-09-2005 à 17:45:04
FlorentG a écrit :
|
thx, effectivement fallait mettre des $this, merci
Marsh Posté le 27-09-2005 à 17:49:24
ReplyMarsh Posté le 27-09-2005 à 17:55:44
ukyo81 a écrit : owned |
Ben non, educated
Marsh Posté le 27-09-2005 à 17:57:39
Code :
|
, tant qu'à faire.
Marsh Posté le 27-09-2005 à 18:13:44
Ah, au fait, question con (parce que c'est du PHP, donc la réponse va être non), mais... le PHP5... il n'y a pas de propriétés plutôt que ces getters/setters immondes
et puis pourquoi que "status" c'est pas tout simplement un booléen? trop facile?
Edit: et puis en fait, vu que "status" est basé sur le QI et qu'on stocke le QI, quel est l'intérêt de cette redondance d'information
EEdit: Et pourquoi tu as mis un nom par défaut aux étudiants alors que c'est leur identifiant
Pas de nom par défaut, et une explosion de caca si tu oublies d'en donner un me semble normal, et accessoirement un QI par défaut à 0 alors qu'il faut être mort pour avoir ça, voilà quoi, mets plutôt un QI moyen (100 quoi, enfin 98 pour la France, 100 pour la Belgique et 97 pour le Canada d'après des stats à la con de 2005)
Marsh Posté le 27-09-2005 à 22:06:53
Y'a des méthodes magiques __get et __set, mais c'est assez chelou dans l'implémentation D'ailleurs je sais pas si c'est pareil
Bref, .NET rulez avec ses propriétés
Marsh Posté le 27-09-2005 à 22:52:26
FlorentG a écrit : Y'a des méthodes magiques __get et __set, mais c'est assez chelou dans l'implémentation D'ailleurs je sais pas si c'est pareil |
Ca a l'air de ressembler à des propriétés, genre implémentées de la manière la plus crade possible
Genre ça fait regretter Java, c'est pour dire
Mais quel bande de sacs à merde chez Zend
Citation : Bref, .NET rulez avec ses propriétés |
J'veux pas être méchant mais... comment dire... ils ont franchement rien inventé hein... et la syntaxe des propriétés en Ruby est largement plus propre vu que l'intégralité de l'accès aux membres est basé dessus
Pour le moment, j'ai pas encore vu plus propre et mieux foutu que les properties Ruby
Marsh Posté le 27-09-2005 à 23:11:37
FlorentG a écrit : Bref, .NET rulez avec ses propriétés |
Je commence l'asp.net et heu .... ca me semble vraiment mal foutus. C'est certe un langage objet, mais pour le moment, j'ai l'impression de jouer aux dominos avec et non pas de faire de la programmation.
MAis bon, ceci dit, le .net est prometteur, domage que ca ai été aussi mal implémenté en asp.
Marsh Posté le 27-09-2005 à 23:18:44
masklinn a écrit : J'veux pas être méchant mais... comment dire... ils ont franchement rien inventé hein... et la syntaxe des propriétés en Ruby est largement plus propre vu que l'intégralité de l'accès aux membres est basé dessus |
Gné ? Tu veux dire qu'on ne peut accéder à des membres qu'avec des propriétés ?
Marsh Posté le 27-09-2005 à 23:19:16
omega2 a écrit : Je commence l'asp.net et heu .... ca me semble vraiment mal foutus. C'est certe un langage objet, mais pour le moment, j'ai l'impression de jouer aux dominos avec et non pas de faire de la programmation. |
L'ASP.Net c'est pas un langage hein
L'ASP.Net, c'est juste un framework, rien à voir avec l'ASP originel. Il met à disposition un certain nombre d'objets et de modules pour la création et la gestion de sites, mais ensuite tu peux coder avec n'importe quel langage basé sur le CLR (la machine virtuelle .Net), VB.Net, C# ou même des trucs implémentés par la suite et non microsoft comme IronPython.
FlorentG a écrit : Gné ? Tu veux dire qu'on ne peut accéder à des membres qu'avec des propriétés ? |
Ouaip, sauf qu'au lieu d'être cons ils ont géré ça de deux manières (enfin il, Matz).
Tout d'abord, il faut savoir qu'en Ruby il y a énormément de "sucre syntactique", et que c'est un langage dont les racines lexicales viennent de Perl (non, partez pas )
En lisible et utilisable quoi
Donc l'une des caractéristiques de Ruby, c'est qu'on utilise jamais de "this" ou de "self", de l'intérieur de l'objet les membres sont préfixés par "@".
Par exemple pour mon objet foo avec un membre bar
class Foo |
Mais ici, comme en C++ (si j'me plante pas ) et à l'opposée de Python un membre est par défaut privé, et il le reste.
Première chose, pour permettre son accès en lecture et/ou en écriture, on le fait explicitement, en précédant son nom de ":" pour montrer l'accesseur, et en utilisant les propriétés "attr_writer" (write only) et attr_accessor (r/w). A noter qu'on file à ces propriétés des listes d'attributs
class Foo |
Ces propriétés vont en fait créer des accesseurs de base (invisibles d'ailleurs) du type
class Foo |
Tout simplement.
Donc oui on ne peut accéder aux membres que via des propriétés, mais ça a été suffisament bien fait pour être très proprement intégré au langage et facile à utiliser
Marsh Posté le 27-09-2005 à 23:19:19
omega2 a écrit : Je commence l'asp.net et heu .... ca me semble vraiment mal foutus. C'est certe un langage objet, mais pour le moment, j'ai l'impression de jouer aux dominos avec et non pas de faire de la programmation. |
Tout dépend comment tu fais ça... Aussi, moi j'utilise .Net pour des vraies appli, à essayer
Marsh Posté le 30-09-2005 à 18:46:21
masklinn a écrit : Ah, au fait, question con (parce que c'est du PHP, donc la réponse va être non), mais... le PHP5... il n'y a pas de propriétés plutôt que ces getters/setters immondes |
lol
Citation : je tente actuellement d'apprendre le php et au cours de mes différents test d'apprentissage, j'ai créé cette classe (qui en soit, n'a ni intérêt, ni objectif autre que de tester l'implémentation d'une classe en php et d'en faire l'utilisation) |
edit : en d'autres termes y'a aucune logique ici, jfaisais juste des tests. la valeur de QI aurait pu être "caribou" le nom de la classe cendrier et les fonctions hypopotame1 et 2. Donc que ce soit joliment programmé ou non, que ce soit logique, etc... n'a aucun sens ici. Je suis juste occupé à analyser la syntaxe de php sans plus. (vous vous prenez vraiment la tête pour rien )
Marsh Posté le 27-09-2005 à 17:09:26
Bonjour,
je tente actuellement d'apprendre le php et au cours de mes différents test d'apprentissage, j'ai créé cette classe (qui en soit, n'a ni intérêt, ni objectif autre que de tester l'implémentation d'une classe en php et d'en faire l'utilisation)
et je me prend
Fatal error: Call to undefined function: getstatus() in d:\program files\easyphp1-8\www\test.php on line 113
comme erreur (où la ligne 113 est la ligne 31 ici)
Auriez vous une idée du pourquoi du comment?
PS: tant que j'y pense, pour l'instant, je suis le guide du site "commentcamarche" ayant d'abord débuté avec celui de nexen qui semblait à ce qu'ils indiquaient être plus utile pour des personnes ayant déja de l'expérience dans le php. Seulement, au niveau POO celui de comment ça marche ne semble pas avoir été mis à jour depuis php3 ce qui est assez ennuyeu vu qu'étant à php5, je suppose que de ce côté il y eu pas mal d'amélioration? Auriez vous un guide/tutoriel à me suggérer à ce sujet? (ce n'est pas, je suppose, extrêmement important pour l'instant mais bon. Vu que mon objectif par l'apprentissage du php est de pouvoir réaliser un projet pour un cours de base de donnée, où l'objectif est plus d'utiliser la base de donnée qu'un langage (d'ailleurs, le langage est laissé au choix))
---------------
Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet ! (antp était prems et est admin) - "Le travail est l'opium du peuple et je ne veux pas mourir dr