Programación

07/08/2011

PHP – Constructores del Lenguaje

Llega el sexto resumen de la serie PHP, en este post haré un resumen de los diferentes constructores que podemos llegar a utilizar.

declare

El constructor declare es usado para fijar directivas de ejecución para un bloque de código. La sintaxis de declare es similar a la sintaxis de otros constructores de control de flujo:

declare (directive)
statement

La sección directive permite que el comportamiento de declare sea configurado. Actualmente, sólo dos directivas están reconocidas: ticks (Ver abajo para más información sobre la directiva ticks) y encoding (Ver abajo para más información sobre la directiva encoding).

La parte statement del bloque declare será ejecutada – como se ejecuta y que efectos secundarios ocurran durante la ejecución puede depender de la directiva fijada en el bloque directive.

El constructor declare también se puede utilizar en el alcance global, afectando a todo el código que le sigue (sin embargo, si el archivo con el declare fue incluido entonces no afectará al archivo padre).

// estos son lo mismo:

// se puede usar ésto:
declare(ticks=1) {
    // script entero aquí
}

// o se puede usar ésto:
declare(ticks=1);
// script entero aquí

Ticks

Un tick es un evento que ocurre para cada sentencia tickable N de bajo nivel ejecutada por el intérprete dentro del bloque declare. El valor para N se especifica usando ticks=N dentro del bloque de declare de la sección directive.

No todas las sentencias son tickable. Por lo general, expresiones de condición y expresiones de argumento no son tickables.

Los eventos que ocurren en cada tick se especifican mediante la register_tick_function(). Ver el ejemplo abajo para más detalles. Tener en cuenta que más de un evento puede ocurrir por cada tick.

declare(ticks=1);

// Una función llamada en cada evento tick
function tick_handler()
{
    echo "tick_handler() llamado\n";
}

register_tick_function('tick_handler');

$a = 1;

if ($a > 0) {
    $a += 2;
    print($a);
}

encoding

Una codificación de script puede ser especificada para cada script usando la directiva encoding.

declare(encoding='ISO-8859-1');
// código aquí

Mas información -> Link

return

Si se llama desde una función, la sentencia return() inmediatamente termina la ejecución de la función actual, y retorna su argumento como el valor de la llamada a la función. return() también pondrá fin a la ejecución de una sentencia eval() o a un archivo de script.

Si se llama desde el ámbito global, entonces la ejecución del script actual se termina. Si el archivo script actual fue incluido con include() o require(), entonces el control es pasado de regreso al archivo que hizo el llamado. Además, si el archivo script actual fue incluido, entonces el valor dado a return() será retornado como el valor de la llamada include(). Si return() es llamado desde dentro del archivo script principal, entonces termina la ejecución del script. Si el archivo script actual fue nombrado por las opciones de configuración auto_prepend_file o auto_append_file en php.ini, entonces se termina la ejecución de ese archivo script.

Mas información -> Link

include & include_once

La sentencia include() incluye y evalúa el archivo especificado.

Los archivos son incluidos con base en la ruta de acceso dada o, si ninguna es dada, el include_path especificado. Si el archivo no se encuentra en el include_path, include() finalmente verificará en el propio directorio del script que hace el llamado y en el directorio de trabajo actual, antes de fallar. El constructor include() emitirá una advertencia si no puede encontrar un archivo, éste es un comportamiento diferente al de require(), el cual emitirá un error fatal..

Si una ruta es definida — ya sea absoluta (comenzando con una letra de unidad o \ en Windows o / en sistemas Unix/Linux) o relativa al directorio actual (comenzando con . o ..) — el include_path será ignorado por completo. Por ejemplo, si un nombre de archivo comienza con ../, el interprete buscará en el directorio padre para encontrar el archivo solicitado.

Cuando se incluye un archivo, el código que contiene hereda el ámbito de las variables de la línea en la cual ocurre la inclusión. Cualquier variable disponible en esa línea del archivo que hace el llamado, estará disponible en el archivo llamado, desde ese punto en adelante. Sin embargo, todas las funciones y clases definidas en el archivo incluido tienen el ámbito global.

Si la inclusión ocurre al interior de una función dentro del archivo que hace el llamado, entonces todo el código contenido en el archivo llamado se comportará como si hubiera sido definida dentro de esa función. Por lo tanto, seguirá el ámbito de las variables de esa función. Una excepción a esta regla son las constantes mágicas las cuales son evaluadas por el intérprete antes que ocurra la inclusión.

La sentencia include_once() incluye y evalúa el fichero especificado durante la ejecución del script. Es un comportamiento similar al de la sentencia include(), siendo la única diferencia que si el código del fichero ya ha sido incluido, no se volverá a incluir. Como su nombre lo indica, será incluido sólo una vez.

include_once() puede ser usado en casos donde el mismo fichero podría ser incluido y evaluado más de una vez durante una ejecución particular de un script, así que en este caso, puede ayudar a evitar problemas como la redefinición de funciones, reasignación de valores de variables, etc.

Mas información include -> Link
Mas información include_once-> Link

require & require_once

require() es idéntico a include() excepto que en caso de fallo, además producirá un error de nivel E_COMPILE_ERROR fatal. En otras palabras, parará el script mientras que include() sólo emitirá una advertencia (E_WARNING) lo cual permite continuar el script.

La sentencia require_once() es idéntica a require() excepto que PHP verificará si el archivo ya ha sido incluido y si es así, no se incluye (require) de nuevo.

Mas información require -> Link
Mas información require_once -> Link

goto

El operador goto puede ser usado para saltar a otra sección en el programa. El punto de destino es especificado mediante una etiqueta seguida de dos puntos y la instrucción es dada como goto seguida de la etiqueta del destino deseado. Este goto no es completamente sin restricciones. La etiqueta de destino debe estar dentro del mismo fichero y contexto, lo que significa que no se puede saltar fuera de una función o método, ni se puede saltar dentro de uno. Tampoco se puede saltar dentro de cualquier clase de estructura de bucle o switch. Se puede saltar fuera de estos y un uso común es utilizar un goto en lugar de un break multi-nivel.

Ejemplo:

goto a;
echo 'Foo';

a:
echo 'Bar';

Ejemplo dentro de un bucle:

for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end;
  }  
}
echo "i = $i";
end:
echo 'j alcanzó 17';

Mas información -> Link

Exit & Die

exit — Imprime un mensaje y termina el script actual, se le puede pasar un string como parámetro para que lo imprima en pantalla.

die — Equivalente a exit()

Mas información Exit -> Link
Mas información Die -> Link

echo, print, printf, print_r & var_dump

echo — Muestra una o más cadenas
print — Mostrar una cadena
printf — Imprimir una cadena con formato
print_r — Imprime información legible para humanos sobre una variable
var_dump — Vuelca información sobre una variable

Mas información echo -> Link
Mas información print -> Link
Mas información printf -> Link
Mas información print_r -> Link
Mas información var_dump -> Link

empty, eval, isset, unset & list

empty — Determina si una variable está vacía
eval — Evaluar una cadena como código PHP
isset — Determina si una variable está definida y no es NULL
unset — Destruye una variable especificada
list — Asigna variables como si fuera un array

Mas información empty -> Link
Mas información eval -> Link
Mas información isset -> Link
Mas información unset -> Link
Mas información list -> Link

Existen muchas funciones mas útiles que podemos llegar a utilizar y que nos sean útil, acá les dejo los links para que puedan investigar y utilizar las que mas les sea útil.

Funciones de strings - Link
Funciones de manejo de variables - Link
Funciones de Arrays - Link
Funciones del Intérprete XML - Link
Funciones de Manejo de Funciones - Link
Funciones varias - Link

Ya iré agregando mas links, son varios!

Espero que les interese estos resúmenes. 🙂

Saludos y espero sus criticas!



About the Author

AgeValed
Pablo Ignacio de la Vega Ibañez, también conocido en algunos lugares como AgeValed, el creador de este blog. Actualmente estoy trabajando como Líder Técnico y Supervisor de Equipo en el área de desarrollo PHP.




 
 

 
PHP

Doctrine2 – Getting Started Issues

Luego de querer instalar y hacer funcionar doctrine en nuestro querido y amado Windows, me encontré con un par de problemas, y por lo que vi en internet a varios le paso lo mismo, vamos a tomar como ejemplo el Doctrine –...
by AgeValed
1

 
 
PHP

Zend Framework – Almacenamiento de sesión en base de datos

En este mini tutorial voy a mostrarles como guardar la sesión en base de datos con ZF 1, esto es muy util para manejo de sesiones en un entorno con múltiples servidores. Material Relacionado Zend_Session_SaveHandler_DbTable Z...
by AgeValed
0

 
 

PHP Conference Argentina 2013

El 4 y 5 de Octubre se celebrará, en la Ciudad de Buenos Aires (Argentina), la PHP Conference Argentina, edición local de la conferencia PHP más popular. Esta edición no solamente está destinada a los programadores PHP, ...
by AgeValed
0

 

 

PHP 5.4.0 liberado!

Les comento que ya se encuentra la nueva versión de PHP liberada, la versión 5.4.0, luego de varios updates que se hicieron a la versión PHP 5.3 ya contamos con nuevas versión que incluye (según ellos) un gran núme...
by AgeValed
0

 
 
PHP

PHP – Errores

En este resumen voy a escribir sobre los el control y registro de los errores en PHP. PHP nos permite definir nuestras reglas para controlar los errores, crear errores personificados o como serán registrados/notificados. Tipos...
by AgeValed
0

 




9 Comentarios


  1. #cool 🙂 RT @agevaled: PHP Constructores http://wp.me/pSTFt-72 #php #tutoriales #resumen el sexto post sobre PHP, espero q les interese! 🙂


  2. #cool 🙂 RT @agevaled: PHP Constructores http://wp.me/pSTFt-72 #php #tutoriales #resumen el sexto post sobre PHP, espero q les interese! 🙂


  3. #cool 🙂 RT @agevaled: PHP Constructores http://bit.ly/nn5TMm #php #tutoriales #resumen el sexto post sobre PHP, espero q les interese! 🙂


  4. #cool 🙂 RT @agevaled: PHP Constructores http://wp.me/pSTFt-72 #php #tutoriales #resumen el sexto post sobre PHP, espero q les interese! 🙂


  5. RT @agevaled: PHP – Constructores http://wp.me/pSTFt-72 #php #tutoriales espero que les interese! 🙂 // #recomendado


  6. Martin

    “constructores” esta mal traducido

    “Construcciones del lenguaje” es la forma correcta.

    ademas include no es una funcion!


    • Si es verdad son constructores del lenguaje….

      y si se que el include no es una función 🙂 lo tiene como función en la pagina oficial de php, como explique en un comentario de FB


  7. denas

    Esta es un copy paste del manual php!!..que sentido tiene


    • Hay casos que copio bastante del sitio, otros no, en este caso era mas simple copiar varias cosas, y en otros post hago un poco mas de resumen…

      Lo mismo Gracias por comentar y lo tendré en cuenta para próximos resúmenes.



Deja un comentario

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.