Comunidad de diseño web y desarrollo en internet online

Sabías que... (PHP)

Citar            
MensajeEscrito el 30 Abr 2009 12:23 am

¿Sabías qué las funciones print_r y var_dump son perfectas funciones para el debug?


print_r: es una función que imprime el contenido de una matriz u objeto.
var_dump: una función que te imprime el valor y el tipo de dato que tiene una variable.

Demostración

Código PHP :

<?php

$arreglo[] = 1;
$arreglo[] = 2;
print_r($arreglo);

var_dump($arreglo);

?>


Salida:

Código :

Array
(
    [0] => 1
    [1] => 2
)
array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Información Adicional: print_r y var_dump imprimen directamente a la salida estandar al menos que se le especifique en el segundo argumento que lo retorne, en cualquier caso cuando se imprima será como texto y visualizarlo de esa manera es tedioso por lo que se recomienda el uso de etiquetas pre o que se modifique el tipo de contenido a texto. Ejemplos

Demostración 1. Usando las etiquetas pre de html

Código PHP :

<?php

echo "<pre>";
print_r($miArreglo);
echo "</pre>";
?> 

Demostración 2. Modificando el tipo de contenido.

Código PHP :

<?php

header("Content-type: type/text");
print_r($miArreglo);
?> 


Advertencia: el ejemplo anterior hace que el navegador interprete el contenido de la pagina como texto y no como html.





Más información: print_r y var_dump.



¿Sabías que puedes hacer return de un include, require o funciones similares?



Las funciones include, include_once, require y require_once por defecto retornan si la operación fue exitosa o no, siempre y cuando no se encuentre un return.

Demostración


configuracion.php

Código PHP :

<?php

$conf["DB_NAME"] = "base_de_datos";
$conf["DB_HOST"] = "localhost";
$conf["DB_PASSWORD"] = "password";
$conf["DB_USERNAME"] = "username";

return $conf;
?>


archivo.php

Código PHP :

<?php

$confDB = include_once($conf);

print_r($confDB);
?>


Salida:

Código :

Array
(
    [DB_NAME] => base_de_datos
    [DB_HOST] => localhost
    [DB_PASSWORD] => password
    [DB_USERNAME] => username
)


Más información: include y include_once, require y require_once.

¿Sabías que las funciones trim, rtrim y ltrim admiten un segundo parámetro?



Estas funciones se usan para quitar de una cadena el caracter que reciben de segundo parámetro espacio que están en ambos lados (trim), lado derecho(rtrim) y lado izquierdo (ltrim). Por defecto es el espacio en blanco y es como todos los conocen y usan, pero puedes personalizarlo.

Demostración:

Código PHP :

<?php
// obligar que la ruta tenga / al final de la cadena
$ruta = "un_directorio/directorio_hijo/";
echo trim($ruta, "/") . "/";
$ruta = "un_directorio/directorio_hijo";
echo trim($ruta, "/") . "/";
?>


Salida:

Código :

un_directorio/directorio_hijo/
un_directorio/directorio_hijo/


Más información: trim, rtrim y ltrim.

¿Sabías que isset puede recibir innumerables parámetros?



La función isset puede recibir muchos parámetros, retornara true si todas las variables que se le pasaron de argumentos están definidas, false en caso contrario

Demostración

Código PHP :

<?php
var_dump(isset($_POST["login"], $_POST["password"]));
?>


salida:

Código :

bool(true) || bool(false)


Más información: isset.

¿Sabias que puedes hacer chequeado de tipo de datos de arreglos o clase en los argumentos de una función o metodo?



PHP es un lenguaje es muy flexible, pero a veces la flexibilidad es una desventaja más que un ventaja. Cuando se programa proyectos para liberar o con un grupo de desarrollo, la validación es algo en lo que se debe emplear mucho esfuerzo, el chequeado de tipo de datos nos ahorra un poco esto.

Código PHP :

<?php

[b]Demostración 1[/b]
function foo( Array $foo)
{
}

foo( "1"); 
?>


Salida:

Código :

Catchable fatal error: Argument 1 passed to foo() must be an array


Demostración 2

Código PHP :

<?php
function bar(myClass $obj)
{
}

class myClass
{
}


bar( "1"); 
?>

Salida:

Código :

Catchable fatal error: Argument 1 passed to bar() must be an instance of myClass


Más información: Type Hinting.

¿Sabías que empty es una construcción de lenguaje y no una función, y eso incrementa el rendimiento de tu aplicación?



empty es una construcción de lenguaje (como isset) y por eso su respuesta es más rapida que otras implementaciones similares.

Código PHP :

<?php

$arreglo = array();

if (!empty($arreglo))
{
 // si no está vacío
}

if (count($array)>0)
{
 // si no está vacío
}

?>


El primer if se ejecutará siempre más rapido que el segundo.

Más información: empty.

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 03 May 2009 01:28 am
No sabia :wink: pero gracias por el dato jejejejeje

Por Pley

Claber

2268 de clabLevel

8 tutoriales

 

Lima - Peru

firefox
Citar            
MensajeEscrito el 04 May 2009 12:22 am
Que hace esto en pruebas, buenos tips.

Por psycho-vnz

Claber

1186 de clabLevel

7 tutoriales

Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.