Comment supprimer un filtre qui est un objet anonyme?
-
-
Vous devriez supprimer le `&` de votre `& $this`,c'est une chose PHP 4You should remove the `&` from your `&$this`, it's a PHP 4 thing
- 0
- 2014-03-22
- Tom J Nowell
-
2 réponses
- votes
-
- 2012-07-01
Jene suispas sûr,mais vouspouvezessayer d'utiliser un singleton.
Vous devez stocker la référence d'objet dans unepropriété statique de votre classe,puis renvoyer cette variable statique àpartir d'uneméthode statique.Quelque chose comme ça:class MyClass{ private static $ref; function MyClass(){ $ref = &$this; } public static function getReference(){ return self::$ref; } }
I'm not sure but you can try using a singleton.
You must store the object reference in a static property of your class and then return that static variable from a static method. Something like this:class MyClass{ private static $ref; function MyClass(){ $ref = &$this; } public static function getReference(){ return self::$ref; } }
-
- 2013-07-28
Tant que vous connaissez l'objet (et que vous utilisez PHP 5.2 ou supérieur - la version PHP stable actuelleest 5.5,5.4esttoujourspriseen charge,5.3esten fin de vie),vouspouvez simplement le supprimer avec le
remove_filter()
méthode.Tout ce dont vous devez vous souvenirest l'objet,lenom de laméthodeet lapriorité (si utilisée):remove_filter('comment_array', [$this, 'FbComments']);
Cependant,vousfaites unepetite erreur dans votre code.Nepréfixezpas
$this
avec l'esperluette&
,qui étaitnécessaire dans PHP 4 (!) Et c'esten retard depuis longtemps.Celapeut rendreproblématique lagestion de vos hooks,alors laissez-le de côté:add_filter('comments_array', [$this, 'FbComments]));
Et c'esttout.
As long as you know the object (and you use PHP 5.2 or higher - current stable PHP version is 5.5, 5.4 is still supported, 5.3 is end of life), you can just remove it with the
remove_filter()
method. All you need to remember is the object, the method-name and the priority (if used):remove_filter('comment_array', [$this, 'FbComments']);
However you do a little mistake in your code. Don't prefix
$this
with the ampersand&
, that was needed in PHP 4 (!) and it's long-time overdue. This can render dealing with your hooks problematic, so just leave it out of the way:add_filter('comments_array', [$this, 'FbComments]));
And that's it.
-
Vousn'avezpas accès à `$this` de l'extérieur (un autreplugin/thème).You have no access to `$this` from the outside (another plugin/theme).
- 2
- 2013-07-28
- fuxia
Dansmonfichier
functions.php
,je voudrais supprimer lefiltre ci-dessous,maisje ne saispas comment lefaire carilest dans une classe.À quoi devrait ressemblerremove_filter()
?Ilesten ligne 88 ici .