2010-11-18 5 views
2

J'ai une classe comme:PHP - fonction d'accès d'une classe

class bla_bla extends WP_Widget { 

    function boo(){ 
    return 'something'; 
    } 

    ... 
} 

(c'est un widget WordPress)

Comment puis-je accéder à la fonction boo() à l'extérieur de la classe? Je veux attribuer la valeur retournée par cette fonction à une variable, comme $var = boo();

+1

Commencez à lire: http://php.net/manual/en/language.oop5.basic .php. –

Répondre

11

Vous pouvez y accéder directement, soit par instancier la classe:

$blah = new bla_bla(); 
$var = $blah->boo(); 

ou

$var = bla_bla::boo(); 
+0

merci. '$ var = bla_bla :: boo();' semble fonctionner – Alex

1
$bla = new bla_bla(); 
$var = $bla->boo(); 
+0

mais si j'utilise le nouveau bla_bla(), la classe ne pourrait-elle pas exécuter d'autres fonctions? – Alex

3

D'abord, vous avez besoin d'une instance de la classe. Ensuite, vous appelez la méthode (si elle est publique). Vous devriez lire des tutoriels sur la POO, car ce sont des choses vraiment basiques. Voir Object Oriented PHP for Beginners.

$bla = new bla_bla(); 
$var = $bla->boo(); 
4

Vous devez avoir une instance de cette classe d'appeler, par exemple:

$widget = new bla_bla(); 
$var = $widget->boo(); 

Sinon, vous pouvez ajouter le mot-clé « statique » à la fonction boo(), et vous pouvez appeler ça ressemble à $var = WP_Widget::boo(); mais cela change la sémantique et pourrait casser le code.

+0

+1 à la fois pour la syntaxe statique et pour l'avertissement concernant le changement ... – ircmaxell