Pregunta sobre Arreglando WordPress de Wordpress:

Recuerda dos veces cuando el nombre del método y el nombre de la clase son iguales

Un usuario preguntó 👇

Hola,

Me encontré con un problema que agregaba llamadas add_action() se llama dos veces, lo que no esperaba. No estoy seguro de si este es el comportamiento esperado o no.


class Tester {
    public function tester() {
        error_log( __METHOD__ . ' called' );
    }
    public function testSomething() {
        error_log( __METHOD__ . ' called' );
    }    
} 
$_oTest1 = new Tester;
add_action( 'plugins_loaded', array( $_oTest1, 'tester' ) ); 
add_action( 'plugins_loaded', array( $_oTest1, 'testSomething' ) ); 

Verás el método tester() se llama dos veces testSomething() llamado solo una vez.

¿Es esto un error o por diseño?

Este tema fue modificado hace 2 años, 4 meses por. Razón: marcado fijo hacia abajo

(@jakept)

Hace 2 años, 4 meses

En PHP, si una clase tiene un método con el mismo nombre, se trata como constructor. Esto es de versiones anteriores y es una falta de respeto, pero eso es lo que sucederá si no __construct() método.

Para compatibilidad con versiones anteriores de PHP 3 y 4, si PHP no puede encontrar una función __construct () para una clase en particular, buscará la función de construcción de estilo antiguo, por nombre de clase.

http://www.php.net/manual/en/language.oop5.decon.php

Asi que tester() corriendo cuando haces esto: $_oTest1 = new Tester;

Lanzador de hilos

(@umchal)

Hace 2 años, 4 meses

Ya veo. ¡Gracias!

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *