Page 1 sur 2

appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 12:35
par jcpans
Bonjour

d'apres la doc http://fr2.php.net/manual/fr/language.oop5.static.php
L'appel non-statique à des méthodes statiques génère une alerte de degré E_STRICT.

mais moi ça me genere rien

Code : Tout sélectionner

<?php error_reporting( E_ALL | E_STRICT ); class B { static $B =555; function __construct() { } static function toto() { echo self::$B; } } $var = new B; $var->toto();
J'ai mal compris ?

Merci d'avance.

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 13:15
par jcpans
J'ai compris, ça s'applique que si on fait l'appel dans la même classe.

Code : Tout sélectionner

<?php error_reporting( E_ALL | E_STRICT ); class B { static $B =555; function __construct() { } function toto() { echo $this->B; } } $var = new B; $var->toto();
[/résolu]

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 13:15
par stealth35
tu fais aucun appelle non static a une méthode static :roll:

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 13:19
par stealth35
un appelle non static a une méthode static
reviendrais faire
class B
{
    public static function test()
    {
        echo 'hello';
    }
}
	
$test = new B();
$test->test();

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 13:33
par jcpans
je reprend pas résolu désolé

ça s'applique que sur les propriétés, dans ou en dehors une classe, désolé pour la fausse info.

Code : Tout sélectionner

error_reporting( E_ALL | E_STRICT ); class Foo { public static $my_static = 'foo'; static public function staticValue() { return self::$my_static; } } print $foo->my_static ";
Donc le même probleme avec la doc

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 13:38
par stealth35
moi ca me génère
Strict Standards: Accessing static property Foo::$my_static as non static in D:\www\test\index.php on line 12
Notice: Undefined property: Foo::$my_static in D:\www\test\index.php on line 12
comme la doc l'indique
class Foo
{
    public static $my_static = 'foo';

    static public function staticValue() {
        return self::$my_static;
    }
}
$foo = new Foo();
print $foo->my_static;  

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:16
par jcpans
Oui donc comme ton code l'idique ça s'applique que sur les propriétés
pas de probleme dans ce code

Code : Tout sélectionner

class Foo { public $my_static = 'foo'; static public function staticValue() { return $this->my_static; } } $foo = new Foo(); echo $foo->my_static;
alors que la doc dit bien méthode
L'appel non-statique à des méthodes statiques génère une alerte de degré E_STRICT.

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:20
par stealth35
my_static n'est pas static la

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:25
par jcpans
méthodes est une propriété pas une méthode.

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:28
par stealth35
pour générer ton erreur fraudais appelé staticValue et pas my_static

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:29
par jcpans
je m'excuse (admin supprimez le message d'avant svp)
my_static est une propriété pas une méthode.

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:32
par jcpans
oups ok je rectifis le code

Code : Tout sélectionner

class Foo { public $my_static = 'foo'; static public function staticValue() { return 'toto'; } } $foo = new Foo(); echo $foo->staticValue();
pas de probleme.

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:33
par stealth35
je vois ou est le probleme, regarde

en francais
L'appel non-statique à des méthodes statiques génère une alerte de degré E_STRICT.
en anglais
Calling non-static methods statically generates an E_STRICT level warning.
erreur de traduction :cry:

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:34
par jcpans
avec

Code : Tout sélectionner

error_reporting( E_ALL | E_STRICT );
J'ai la tete qui tourne 8-|

Re: appel non-statique à des méthodes statiques

Posté : 27 mai 2010, 15:36
par stealth35
la traduction serai
L'appel statiques à des méthodes non-statiques génère une alerte de degré E_STRICT.