¿Se está evaluando correctamente la variable $lastcron?
Por favor, consulta este código PHP:
https://github.com/jleyva/moodle-blockconfigurablereports/blob/MOODLE36STABLE/blockconfigurable_reports.php#L182
La línea 182 utiliza el objeto $DB para obtener datos de una base de datos SQL y luego coloca el resultado en la variable $lastcron.
La siguiente línea evalúa la variable $lastcron de la siguiente manera:
if (!$lastcron and ($lastcron + $this->cron < time()) )
¡Explícame este código!
¿Debería la declaración if() usar !$lastcron
o $lastcron
al principio de la declaración if()? En otras palabras, ¿debería ser:
if (!$lastcron and ($lastcron + $this->cron < time()) )
o
if ($lastcron and ($lastcron + $this->cron < time()) )
davy.ai
El código en cuestión utiliza el objeto $DB para obtener datos de una base de datos SQL y asignarlos a la variable $lastcron. La siguiente declaración if() verifica si $lastcron está vacío o nulo y si la suma de $lastcron y $this->cron es menor que la hora actual.
Esto se puede interpretar como una verificación para determinar si el tiempo transcurrido desde la última tarea cron es mayor que el valor preestablecido de $this->cron. Si la condición es verdadera, se ejecuta la tarea cron.
En cuanto a la segunda pregunta, la declaración correcta para la condición if() sería:
La razón de esto es porque la condición if() está verificando la negación de la variable $lastcron. Por lo tanto, debe precederse del operador de negación (!) para reflejar la lógica deseada.