Mouarf, c koi cette attaque de noob ![]()
Ce couillon fait le ménage, maintenant les news ont disparu
Mouarf, c koi cette attaque de noob ![]()
Il a utilisé un script qui vise fluxbb visiblement
Ah ben c’est du propre ![]()
Je suis tombé sur un bug PHP bizarre :
<?php
class Bidule {
function abc() {
echo 'I\'m Bidule::abc()', "\n";
$this->def();
}
function def() {
echo 'I\'m Bidule::def()', "\n";
}
}
class Machin {
function xyz() {
echo 'I\'m Machin::xyz()', "\n";
Bidule::abc(); // Appel static-style à une méthode d'objet (et non de classe)
}
function def() {
echo 'I\'m Machin::def()';
}
}
$machin = new Machin();
$machin->xyz();
?>
Qui produit la sortie suivante :[quote=« »]
I’m Machin::xyz() // Va appeler Bidule::abc()…
I’m Bidule::abc() // Va appeler « $this->def(); » (où $this ne pointe vers aucune instance de Bidule)…
I’m Machin::def() // Pas de « Fatal error: Using $this when not in object context ». A la place on a appelé Bidule::def() !
[/quote]
Qu’en pensez-vous ?
Il me semble qu’on « remonte à l’appelant » (la classe Machin).
bizarre l’appel à une méthode non static via :: est impossible normalement, non ? :o
Erreur quand on utilise sans static quand toutes les erreurs sont report :
Strict Standards: Non-static method Bidule::abc() should not be called statically, assuming $this from incompatible context in /home/pyr/public_html/Morceaux%20de%20codes/Clubic/Raynor/test.php on line 15
roblin.no-ip.com…
Il affiche bien le Machin::def() ![]()
Edité le 14/08/2008 à 01:41
Preums :hello:
deuz ![]()
ya du relachement ces derniers temps ![]()
Une méthode étant fondamentalement de classe (car n’utilisant pas $this) devrait effectivement être déclarée static mais PHP autorise ce genre d’entorse.
Cela dit, vu que ma méthode utilise bien $this, il devrait me sortir une « Fatal error: Using $this when not in object context ».
Mets le niveau d’erreur à E_STRICT.
C’est normal que ça marche puisque ce comportement était accepté en PHP4.
Edité le 14/08/2008 à 10:23
C’est ton français qui est pas strict on dirait ![]()
/taunt
grumph
bien envie d’éditer ton message, hé.
Puis c’est bien de relever ça, mais je te ferais remarquer que le tien n’est pas mieux:
Non, parce ce que sans le « n’ », ça ne veut rien dire!
tss!
la virgule est parfaitement facultative, accessoirement moi je code pour que ca marche sur IE hein ![]()
Ce message n’était pas conforme aux règles d’utilisation du nouveau forum :
BAN !
Preum’s :o
Suppot de l’empire :o [:shy]
jore ![]()
La virgule, peut-être, mais pas le « n’ », de même que le « ç » de ça ![]()
:o Fais pas ton rageux sans-nom ![]()
hu hu ,)