domingo, 8 de noviembre de 2009

Reusabilidad de código 'Las Funciones'

Uno de los errores o deficiencias en la creación y desarrollo de sitios y aplicaciones, es la repetición de código, haciéndolo más complejo además la posibilidad de errores de lógica son más frecuentes y difíciles de encontrar.

Las “funciones” aparecen como pequeños subprogramas creados por los desarrolladores donde se pueden realizar tareas de forma específica, para cada función una tarea o proceso. Esto facilita hacia el futuro encontrar o mejorar nuestro código. PHP al igual que otros lenguajes de programación tiene sus propias funciones nativas que facilitan procesos de forma eficaz y rápida. Ver manual PHP

Dentro de la Programación Orientada a Objetos, las funciones son llamadas métodos o comportamientos o acciones, realizando el mismo funcionamiento (realizar un tarea específica o proceso y retornando un valor).

Sintaxis


<?php

//date es una funcion de PHP
function getAnio() {

  $anio = date("Y");

  return $anio;

}

echo 'Este año es: '.getAnio();

?>

Función con parámetros, el numero de parámetros depende  en sí de la tarea o proceso a resolver.

<?php

function cumpleanio($anioNacimiento) {
 $anioActual = date("Y");
 $cumpleanio= $anioActual- $anioNacimiento;
 return $cumpleanio;
}
echo cumpleanio(1962);
?>


 
<?php

function encontrarNombre($array,$buscarNombre) {
   $encontrado = false;
   foreach($array as $nombre){
     if($nombre == $buscarNombre){
       $encontrado = 'Encontrado';
        break;
     }
   }
   if($encontrado == false){
     $encontrado = 'No enontrado';
   }
  return $encontrado;
}

$buscarNombre = 'andres';

//Esto puede ser una variable que proviene de un formulario
$nombres = array('carlos','andres','david','mariana');
//Esto puede estar en una Base de Datos
echo "El usuario $buscarNombre ".encontrarNombre($nombres, $buscarNombre);

?>


Funciones con parámetros tipo variables: pasar variable por valor o por referencia

<?php

$edad =47;
function  cambiarEdadPorValor($edad){
 return $edad++;
}
function  cambiarEdadPorReferencia(&$edad){
 return $edad++;
 }
cambiarEdadporValor($edad);
print $edad;
echo '<br>';
cambiarEdadporReferencia($edad);
print $edad;
?>

En  PHP5 cuando se pasa un Objeto como parámetro de una función o método siempre se pasa como referencia, indicando que cualquier modificación afectará el objeto en el tiempo de permanencia.

En  el siguiente enlace se encuentra una variedad de ejemplos sobre funciones : Tips de Funciones

miércoles, 4 de noviembre de 2009

Embeber Código PHP

Ante la facilidad que tiene el lenguaje de programación PHP de "convivir"  o embeber su código con las Etiquetas  HTML, siempre he tenido latente la inquietud sobre cual será la forma correcta de escribir nuestro  código, éste deberá ser limpio y de facil lectura. Teniendo en cuenta las sugerencias realizadas por parte de surforce.com en el taller de desarrollo de Zend Framework y revisando el manual de PHP encontre "Sintaxis alternativas de estructuras de Control". Aquí se expresa la sintaxis de las estructuras de control como if, while, for, foreach y switch.
Esta sintaxis esta más encaminada a OPP, empleada en el patron de diseño MVC dándole a la visualización de resultados (views o vistas) un mejor control.

ejemplos:
if

<?php if($a > $b):?>

 <p>Resultado Verdadero</p>

<?php else:?>

<p>Resultado Falso</p>

<?php endif; ?>



<?php if ($this->usuarioLogueado): ?>

 <div class="menu-opciones">

  <ul>

   <li><a href="<?php echo $this->baseUrl;?>/noticias/noticias/agregar">Agregar noticia</a>

   </li>

  </ul>

 </div>

<?php endif; ?>



foreach

<?php foreach( $this->faqs as $faq ): ?>

  <tr><td><?php echo $faq->id;?></td></tr>

<?php endforeach;?>


while
 
<?php while ($i <=10):?>

 Sentencias...



<?php endwhile;?>


for

<?php for($i = 1; $i <= 10;$i++):?>

    <H1>texto</H1>

<?php endfor; ?>





Usted  como embebe codigo en sus aplicaciones Web?

domingo, 1 de noviembre de 2009

Type casting en PHP

Lenguajes de programación de tipeado fuerte nos indica que para poder utilizar las variables hay que declararlas previamente y determinar el TIPO de dato a contener. En PHP no es necesario hacer estas declaraciones, las variables empiezan por el signo $, deben contener solo caracteres alfanuméricos y empezar por letra, el uso de underscore o raya baja (_) solo esta permitida cuando en la declaración de atributos de una clase son privados o protegidos.

Cuando el nombre de la variable se compone de dos o mas palabras, la variable empieza con minúscula y la segunda con mayúscula (camelCaps).

Ejemplos
 
// variables numericas
$edad=15;
echo $edad;

//variables string o cadena

$nombreUsuario='carlos';
echo $nombreUsuario;

 

Esa flexibilidad de tipo puede ocasionar algunas dificultades o errores inesperados y en PHP 5 se puede utilizar dos maneras de darle tipo a las variables. la primera es mediante la manipulacion de tipos de la forma:
  • $variable =(tipo de dato) dato o variable;
  • Donde 'tipo de dato' puede tomar varias opciones entre otras:
    • (int) para integer o numeros enteros
    • (string) para string o cadenas
    • (double) para datos decimales
    • (object) para objetos
    • (array) para vectores
    • (real) para numeros reales
    • (bool) para booleanos

// variables numericas
$edad=(int)15;
echo $edad;

//variables string o cadena
$nombre=(string) 'Carlos';
echo $nombre;



La otra opción de manipular el tipo de dato es mediante las funciones gettype y settype, estas obtiene el tipo de dato o asignan el tipo de dato respectivamente.

// variables numericas
$edad = 15;

echo gettype($edad);
// sale integer


$edad = '15';
//asignación de cadena 15 porque esta entre comillas

echo gettype($edad);
// sale string
settype($edad, 'integer');
echo gettype($edad); 
// sale integer


El conocimiento y aplicación de estas formas para asignar un tipo de dato específico a las variables, mejora el desarrollo de nuestras aplicaciones.