Actividades IV
1. Con datos inventados crea array para los diferentes casos:
a) La nota y el ID de cada estudiante según su grupo
b) Cantidad de stock de cada producto en una tienda
c) Nombres de las personas de tu familia
d) Nombre edad y parentesco con las personas de tu familia
Este último también se podía hacer tipo el de la tienda.
VII. Creando Funciones propias
A día de hoy, está muy bien visto el reutilizar código.
Si tenemos una determinada acción que se repetirá más de una o dos veces y que los cambios en ambos procesos son menores quizá nos convenga crear una función para dicho proceso y así evitarnos líneas repetitivas y errores en la programación.
Los argumentos de una función son datos extra que le pasamos a esta para que realice la acción, si por ejemplo tenemos una función que muestra un mensaje envuelto en etiquetas h1, el argumento a enviarle es el texto a mostrar.
Tenemos 2 tipos de funciones:
- De dirección única: A las cuales podemos, o no, pasarle argumentos pero no devuelven un valor
- De dos direcciones: a las cuales le pasamos argumentos y nos retornan un valor.
Para este último podríamos tener una función de comprobación de usuarios y en caso de coincidir los datos devuelve true o false si alguno es incorrecto.
Las variables dentro de una función son distintas a las de fuera de la función, como si vivieran en mundos separados. Este apartado se explicará más adelante, pero es importante tenerlo presente.
Declarar y llamar funciones:
Como habrá notado, todo (o casi todo) en PHP son funciones, como echo printf o strcasecmp, los parámetros que les enviamos funcionan de la misma manera que lo harán nuestras funciones.
Para declarar una función usaremos la palabra function seguida del nombre que asignemos a la función y los paréntesis, estos no son obligatorios pero ayudan a la comprensión del código por lo que es recomendable ponerlos.
Inserta ste codigo en tu site:
Este código es un ejemplo de la declaración de una función, su cometido es imprimir el código HTML del head de nuestras páginas web.
La forma de llamar a la función es la última línea.
Los nombres de las funciones siguen la misma regla que los de la variable, empiezan por una letra o un subrayado y pueden contener letras, números y subrayados.
Las funciones pueden ser llamadas antes o después de ser declaradas y funcionan de igual forma.
En el código siguiente se aprecia como una función es llamada antes de ser declarada sin problema alguno.
Enviar parámetros a las funciones
Ahora nos planteamos, ¿Qué pasa si queremos que el título de la web sea diferente para cada sección?
Para conseguir eso utilizaremos los argumentos.
En el código podemos notar 2 grandes diferencias:
En la línea que declaramos la función agregamos un $title=”índice” entre paréntesis.
$title es el nombre que adquirirá la variable e índice el valor en caso de que al llamarla no se proporcione uno.
Si no agregamos el valor por defecto, y dejamos algo como page_header($title), al llamar la función obtendremos un error por falta de parámetros.
Y una cosa más, los valores por defecto no pueden ser variables.
Para pasar múltiples parámetros a una función solo hay que concatenarlos con comas.
Es recomendable, y una buena práctica, que los parámetros obligatorios se sitúen al principio de la declaración (es decir, en el ejemplo, $fondo sería el primer parámetro).
Retornar valores de una función
No sería lógico decir que una función puede retornar valores y no enseñar cómo.
El retorno de datos se hace con la sentencia return y solo puede ejecutarse un return por sentencia (pero puede haber varios) ya que al ejecutarse el primer return el programa sale de la función
A esta función se le envía un valor (6) y le suma 5 y devuelve el resultado.
El retorno se puede enviar directamente a una función o almacenarlo en una variable.
Entendiendo el ámbito de las variables.
La forma más fácil de entender este apartado es con ejemplos, así que me voy a matar poco en la explicación.
Las funciones tienen variables de ámbito privado o local, eso quiere decir que si en una función usamos la variable $count y dicha variable no está definida fuera, la variable no existirá.
Así mismo si en el programa principal usamos la variable $precio, y dicha variable no está definida en la función, la variable no existirá.
Veamos unos ejemplos:
En este ejemplo no hay salida ya que la variable $numero no fue declarada en la función.
Aquí vemos como en el echo de la función sí que está declarada (pues la declaramos arriba), pero fuera ya no.
Por si aún se alberga alguna duda:
Este último ejemplo un poco más elaborado, da el valor 1 a $numero, llama a la función.
En la función, si el valor $numero no está definido lo define a 3 y lo muestra, sale de la función.
Muestra el valor de $numero.
Si probáis el código, ya no deberíais albergar duda sombre el ámbito de las variables.
Pero… ¿Qué pasa si quiero usar una variable de fuera de la función?
Esta pregunta tiene 2 respuestas:
- Si el objetivo es proporcionar alguna información, podemos pasarlo como parámetro
- Si el objetivo es modificar la variable original podemos usar las 2 formas siguientes:
En estas 2 funciones comprobamos las 2 formas de acceder a una variable externa.
En ámbito, comprobamos como podemos alterar el número original mostrando así el número modificando en ambito2.
$GLOBALS[] es uno de los tantos arrays que existe dentro de PHP, este contiene todas las arrays globales del script.
Actividades V
Crea un programa en PHP a forma de calculadora utilizando el mínimo de funciones posible.
Crea un programa en PHP en el que tengas que exponer todo lo aprendido en este apartado
Versión .doc: Funciones.doc
Versión .pdf: Funciones.pdf
1. Con datos inventados crea array para los diferentes casos:
a) La nota y el ID de cada estudiante según su grupo
<?php
$estudiantes = array( 'group1' => array ('user1' => array ('nota' => 4,
'id' => 1),
'user2' => array ('nota' => 6,
'id' => 2)
),
'group2' => 'etc');
?>
b) Cantidad de stock de cada producto en una tienda
<?php
$tienda = array( 'product1' => 'stock',
'product2' => 10);
?>
c) Nombres de las personas de tu familia
<?php
$familia = array ('name1', 'name2', 'name3');
?>
d) Nombre edad y parentesco con las personas de tu familia
<?php
$family = array ( 'hermano' => array('juan', 'esteban'),
'hermana' => 'julia',
'padre' => 'ernest',
'madre' => 'juana');
?>
Este último también se podía hacer tipo el de la tienda.
VII. Creando Funciones propias
A día de hoy, está muy bien visto el reutilizar código.
Si tenemos una determinada acción que se repetirá más de una o dos veces y que los cambios en ambos procesos son menores quizá nos convenga crear una función para dicho proceso y así evitarnos líneas repetitivas y errores en la programación.
Los argumentos de una función son datos extra que le pasamos a esta para que realice la acción, si por ejemplo tenemos una función que muestra un mensaje envuelto en etiquetas h1, el argumento a enviarle es el texto a mostrar.
Tenemos 2 tipos de funciones:
- De dirección única: A las cuales podemos, o no, pasarle argumentos pero no devuelven un valor
- De dos direcciones: a las cuales le pasamos argumentos y nos retornan un valor.
Para este último podríamos tener una función de comprobación de usuarios y en caso de coincidir los datos devuelve true o false si alguno es incorrecto.
Las variables dentro de una función son distintas a las de fuera de la función, como si vivieran en mundos separados. Este apartado se explicará más adelante, pero es importante tenerlo presente.
Declarar y llamar funciones:
Como habrá notado, todo (o casi todo) en PHP son funciones, como echo printf o strcasecmp, los parámetros que les enviamos funcionan de la misma manera que lo harán nuestras funciones.
Para declarar una función usaremos la palabra function seguida del nombre que asignemos a la función y los paréntesis, estos no son obligatorios pero ayudan a la comprensión del código por lo que es recomendable ponerlos.
Inserta ste codigo en tu site:
<?php
function page_header() {
echo '<html><head><title> MI pagina web</title></head>
<body bgcolor="#ECE6B4" text="#ffffff">';
}
page_header();
?>
Este código es un ejemplo de la declaración de una función, su cometido es imprimir el código HTML del head de nuestras páginas web.
La forma de llamar a la función es la última línea.
Los nombres de las funciones siguen la misma regla que los de la variable, empiezan por una letra o un subrayado y pueden contener letras, números y subrayados.
Las funciones pueden ser llamadas antes o después de ser declaradas y funcionan de igual forma.
En el código siguiente se aprecia como una función es llamada antes de ser declarada sin problema alguno.
<?php
function page_header() {
echo '<html><head><title> MI pagina web</title></head>
<body bgcolor="#ECE6B4" text="#ffffff">';
}
page_header();
page_foot();
function page_foot() {
echo '</body></html>';
}
?>
Enviar parámetros a las funciones
Ahora nos planteamos, ¿Qué pasa si queremos que el título de la web sea diferente para cada sección?
Para conseguir eso utilizaremos los argumentos.
<?php
function page_header($title="indice") {
echo '<html><head><title>MiWeb || '.$title.'</title></head>
<body bgcolor="#ECE6B4" text="#ffffff">';
}
page_header("Seccion 1");
?>
En el código podemos notar 2 grandes diferencias:
En la línea que declaramos la función agregamos un $title=”índice” entre paréntesis.
$title es el nombre que adquirirá la variable e índice el valor en caso de que al llamarla no se proporcione uno.
Si no agregamos el valor por defecto, y dejamos algo como page_header($title), al llamar la función obtendremos un error por falta de parámetros.
Y una cosa más, los valores por defecto no pueden ser variables.
Para pasar múltiples parámetros a una función solo hay que concatenarlos con comas.
<?php
function page_header($title="indice", $fondo, $text='#ECE6B4') {
echo '<html><head><title>MiWeb || '.$title.'</title></head>
<body bgcolor="'.$fondo.'" text="'.$text.'">';
}
page_header("Seccion 1", "#ffffff");
?>
Es recomendable, y una buena práctica, que los parámetros obligatorios se sitúen al principio de la declaración (es decir, en el ejemplo, $fondo sería el primer parámetro).
Retornar valores de una función
No sería lógico decir que una función puede retornar valores y no enseñar cómo.
El retorno de datos se hace con la sentencia return y solo puede ejecutarse un return por sentencia (pero puede haber varios) ya que al ejecutarse el primer return el programa sale de la función
<?php
function suma5 ($value) {
$value = $value + 5;
return $value;
}
echo suma5(6);
?>
A esta función se le envía un valor (6) y le suma 5 y devuelve el resultado.
El retorno se puede enviar directamente a una función o almacenarlo en una variable.
Entendiendo el ámbito de las variables.
La forma más fácil de entender este apartado es con ejemplos, así que me voy a matar poco en la explicación.
Las funciones tienen variables de ámbito privado o local, eso quiere decir que si en una función usamos la variable $count y dicha variable no está definida fuera, la variable no existirá.
Así mismo si en el programa principal usamos la variable $precio, y dicha variable no está definida en la función, la variable no existirá.
Veamos unos ejemplos:
<?php
function ambito() {
echo $numero;
}
$numero = 5;
echo ambito();
?>
En este ejemplo no hay salida ya que la variable $numero no fue declarada en la función.
<?php
function ambito() {
$numero = 3;
echo $numero.'<br />';
}
echo ambito();
echo $numero."!!!!";
?>
Aquí vemos como en el echo de la función sí que está declarada (pues la declaramos arriba), pero fuera ya no.
Por si aún se alberga alguna duda:
<?php
function ambito() {
if (!$numero)
$numero = 3;
echo $numero.'<br />';
}
$numero = 1;
echo ambito();
echo $numero."!!!!";
?>
Este último ejemplo un poco más elaborado, da el valor 1 a $numero, llama a la función.
En la función, si el valor $numero no está definido lo define a 3 y lo muestra, sale de la función.
Muestra el valor de $numero.
Si probáis el código, ya no deberíais albergar duda sombre el ámbito de las variables.
Pero… ¿Qué pasa si quiero usar una variable de fuera de la función?
Esta pregunta tiene 2 respuestas:
- Si el objetivo es proporcionar alguna información, podemos pasarlo como parámetro
- Si el objetivo es modificar la variable original podemos usar las 2 formas siguientes:
<?php
function ambito() {
global $numero;
echo $numero.'<br />';
$numero = 4;
}
function ambito2() {
echo $GLOBALS['numero'];
}
$numero = 3;
ambito();
ambito2();
?>
En estas 2 funciones comprobamos las 2 formas de acceder a una variable externa.
En ámbito, comprobamos como podemos alterar el número original mostrando así el número modificando en ambito2.
$GLOBALS[] es uno de los tantos arrays que existe dentro de PHP, este contiene todas las arrays globales del script.
Actividades V
Crea un programa en PHP a forma de calculadora utilizando el mínimo de funciones posible.
Crea un programa en PHP en el que tengas que exponer todo lo aprendido en este apartado
Versión .doc: Funciones.doc
Versión .pdf: Funciones.pdf
Publicar un comentario