php - remove - strip_tags wordpress
¿Cómo puedo comprobar si mi función de impresión/eco es algo? (6)
A menudo uso eco para depurar el código de la función:
public function MyFunc() {
// some code...
echo "OK";
// some code...
}
¿Cómo puedo verificar que mi función imprima / echo algo?
(pseudo código):
MyFunc();
if (<when something was printed>){
echo "You forgot to delete echo calls in this function";
}
¿Por qué quieres probar un proceso tan extenso de ver si algo se ha repetido o no?
Para la depuración, definitivamente puede usar eco para ver si el bloque en particular está siendo golpeado durante un caso de uso particular. Pero le sugiero que use indicadores y devuelva los valores a la función de llamada.
function xyz () {
if (something) return some_value;
else return some_other_value;
}
No hay necesidad particular de tener variables y usar espacio para almacenar un 0 o 1 cuando solo puede devolver un literal codificado.
Es la mala manera de comprobar si algo se repite.
Puede establecer una variable llamada is_echoed en 1 o puede devolver el valor
public $is_echoed = 0;
//rest
$this->is_echoed = 1;
o
function myFunc()
{
return "OK";
}
if(myFunc() == ''OK'')
//rest
Esto debería funcionar para usted:
Simplemente llame a sus funciones, mientras tiene activado el búfer de salida y verifique si el contenido está vacío, por ejemplo,
ob_start();
//function calls here
MyFunc();
$content = ob_get_contents();
ob_end_clean();
if(!empty($content))
echo "You forgot to delete echos for this function";
Podrías crear una bandera $debug
y una función debuglog()
, que verifica la bandera de depuración y solo entonces corta el mensaje. Luego puede activar y desactivar sus mensajes de depuración desde una ubicación.
define(''DEBUGMODE'', true); // somewhere high up in a config
function debuglog($msg){
if( DEBUGMODE ){ echo $msg; }
}
Si alguna vez desea deshacerse de sus ecos de depuración, puede buscar "debuglog("
y eliminar esas líneas de código. De esta manera, no borrará accidentalmente ninguna declaración de eco que se requiera en la ejecución normal ni perderá ninguna de las declaraciones de debug echo que realmente debería haber sido eliminado.
Puede usar var_dump()
y die()
para depurar su código de manera más eficiente.
$test = "debud test";
public function MyFunc($test)
{
// some code...
var_dump($test); die();
// some code...
}
Referencia: http://php.net/manual/en/function.var-dump.php
Te sugiero que uses algo como log4php
[1]
Pero si no, uso una función como esta:
define(''DEBUG'', true);
function debug($msg){
if(DEBUG){ echo $msg; }
}
O algo como esto para ver el registro en la consola del navegador :
function debug_to_console( $data ) {
if ( is_array( $data ) )
$output = "<script>console.log( ''Debug Objects: " . implode( '','', $data) . "'' );</script>";
else
$output = "<script>console.log( ''Debug Objects: " . $data . "'' );</script>";
echo $output;
}