appel non-statique à des méthodes statiques

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : appel non-statique à des méthodes statiques

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

par jcpans » 27 mai 2010, 15:38

=D> =D> =D> Merci

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

par stealth35 » 27 mai 2010, 15:36

la traduction serai
L'appel statiques à des méthodes non-statiques génère une alerte de degré E_STRICT.

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

par jcpans » 27 mai 2010, 15:34

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

par stealth35 » 27 mai 2010, 15:33

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

par jcpans » 27 mai 2010, 15:32

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

par jcpans » 27 mai 2010, 15:29

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

par stealth35 » 27 mai 2010, 15:28

pour générer ton erreur fraudais appelé staticValue et pas my_static

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

par jcpans » 27 mai 2010, 15:25

méthodes est une propriété pas une méthode.

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

par stealth35 » 27 mai 2010, 15:20

my_static n'est pas static la

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

par jcpans » 27 mai 2010, 15:16

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

par stealth35 » 27 mai 2010, 13:38

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

par jcpans » 27 mai 2010, 13:33

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

par stealth35 » 27 mai 2010, 13:19

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

par stealth35 » 27 mai 2010, 13:15

tu fais aucun appelle non static a une méthode static :roll:

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

par jcpans » 27 mai 2010, 13:15

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]