PHP
El lenguaje PHP es un lenguaje de programación de estilo clásico, con esto quiero decir que es un lenguaje de programación con variables, sentencias condicionales, bucles, funciones. No es un lenguaje de marcas como podría ser HTML, XML o WML. Está más cercano a JavaScript o a C, para aquellos que conocen estos lenguajes.
Al ser PHP un lenguaje que se ejecuta en el servidor no es
necesario que su navegador lo soporte, es independiente del navegador, pero sin
embargo para que sus páginas PHP funcionen, el servidor donde están alojadas
debe soportar PHP.
HTML es el lenguaje que interpretan los navegadores web, y es lo que se muestra. PHP se ejecuta en el servidor, y genera una salida HTML para que se vean los resultados en los navegadores. PHP realiza acciones, HTML muestra información.
La ventaja que tiene PHP sobre otros lenguajes de programación que seejecutan en el servidor (como podrían ser los script CGI Perl), es que nos permite intercalar las sentencias PHP en las paginas HTML, es un concepto algo complicado de entender si no se ha visto nunca como funciona unas paginas PHP o ASP.
SUBSTR
STRTOUPPER
STRTOLOWER
La
instrucción switch
<?php
$color = 'verde';
$fruta = 'manzana';
?>
<?php
echo "Una $fruta $color"; // Una
include 'vars.php';
echo "Una $fruta $color"; // Una manzana verde
?>
¿PHP IGUAL A HTML?
HTML es el lenguaje que interpretan los navegadores web, y es lo que se muestra. PHP se ejecuta en el servidor, y genera una salida HTML para que se vean los resultados en los navegadores. PHP realiza acciones, HTML muestra información.
PRIMER
PHP
La ventaja que tiene PHP sobre otros lenguajes de programación que seejecutan en el servidor (como podrían ser los script CGI Perl), es que nos permite intercalar las sentencias PHP en las paginas HTML, es un concepto algo complicado de entender si no se ha visto nunca como funciona unas paginas PHP o ASP.
Ejemplo:
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Parte de HTML normal.
<BR><BR>
<?php
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
}
?>
</body>
</html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Parte de HTML normal.
<BR><BR>
<?php
echo "Parte de PHP<br>";
for($i=0;$i<10;$i++)
{
echo "Linea ".$i."<br>";
}
?>
</body>
</html>
STRLEN
Se utiliza para
obtener longitud en una cadena.
Ejemplo:
<?php
echo strlen("Hi my name is Sam Anderson");
?>
echo strlen("Hi my name is Sam Anderson");
?>
SUBSTR
Esta función devuelve una
parte de la cadena.
En la
sintaxis anterior, "string" es la entrada que se devuelve,
"start" especifica por dónde empezar en la entrada,
"length" especifica la longitud de una parte de una cadena.Por lo
general, "start", "length" pueden tener números positivos y
negativos,los cuales se refieren al inicio y al final de una cadena.
Ejemplo:
<?php
echo substr("abcdef", -1);
echo substr("abcdef", -2);
echo substr("abcdef", 0, -1);
echo substr("abcdef", 2, -1);
?>
echo substr("abcdef", -1);
echo substr("abcdef", -2);
echo substr("abcdef", 0, -1);
echo substr("abcdef", 2, -1);
?>
STRTOUPPER
Esta función es utilizada
para convertir una cadena a mayúscula.
Ejemplo:
<?php
$str = "Hi FOLKS welcome to Web our WORLD";
$str = strtoupper($str);
echo $str;
?>
$str = "Hi FOLKS welcome to Web our WORLD";
$str = strtoupper($str);
echo $str;
?>
STRTOLOWER
Esta función se utiliza para
convertir una cadena a minúscula
Ejemplo:
<?php
$str = "Hi FOLKS welcome to Web our WORLD";
$str = strtolower($str);
echo $str;
?>
$str = "Hi FOLKS welcome to Web our WORLD";
$str = strtolower($str);
echo $str;
?>
OPERADORES
ARITMÉTICOS:
abs — Valor absoluto
acos — Arco coseno
acosh — Arco coseno hiperbólico
asin — Arco seno
asinh — Arco seno hiperbólico
atan2 — Arco tangente de dos variables
atan — Arco tangente
atanh — Arco tangente hiperbólica
base_convert — Convertir un número
entre bases arbitrarias
bindec — Binario a decimal
ceil — Redondear fracciones hacia
arriba
cos — Coseno
cosh — Coseno hiperbólico
decbin — Decimal a binario
dechex — Decimal a hexadecimal
decoct — Decimal a octal
deg2rad — Convierte el número en
grados a su equivalente en radianes
exp — Calcula la exponencial de e
expm1 — Devuelve exp(numero)-1,
calculado de tal forma que no pierde precisión incluso cuando el valor del
numero se aproxima a cero.
floor — Redondear fracciones hacia
abajo
fmod — Devuelve el resto en punto
flotante (módulo) de la división de los argumentos
getrandmax — Mostrar el mayor valor
aleatorio posible
hexdec — Hexadecimal a decimal
hypot — Calcula la longitud de la
hipotenusa de un triángulo de ángulo recto
intdiv — Integer division
is_finite — Encuentra si un valor es
un número finito legal
is_infinite — Encuentra si un valor es
infinito
is_nan — Encuentra si un valor no es
un número
lcg_value — Generador lineal
congruente combinado
log10 — Logaritmo en base 10
log1p — Devuelve log(1 + numero),
calculado de tal forma que no pierde precisión incluso cuando el valor del
numero se aproxima a cero.
log — Logaritmo natural
max — Encontrar el valor más alto
min — Encontrar el valor más bajo
mt_getrandmax — Mostrar el mayor valor
aleatorio posible
mt_rand — Genera un mejor número
entero aleatorio
mt_srand — Genera el mejor número
aleatorio a partir de una semilla
octdec — Octal a decimal
pi — Obtener valor de pi
pow — Expresión exponencial
rad2deg — Convierte el número en
radianes a su equivalente en grados
rand — Genera un número entero
aleatorio
round — Redondea un float
sin — Seno
sinh — Seno hiperbólico
sqrt — Raíz cuadrada
srand — Genera un número aleatorio a
partir de una semilla
tan — Tangente
tanh — Tangente hiperbólica
OPERADORES
LÓGICOS:
|
Ejemplo
|
Nombre
|
Resultado
|
|
$a and
$b
|
And (y)
|
TRUE si tanto $a como $b son TRUE.
|
|
$a or
$b
|
Or (o
inclusivo)
|
TRUE si cualquiera de $a o $b es TRUE.
|
|
$a xor
$b
|
Xor (o
exclusivo)
|
TRUE si $a o $b es TRUE, pero no ambos.
|
|
! $a
|
Not
(no)
|
TRUE si $a no
es TRUE.
|
|
$a
&& $b
|
And (y)
|
TRUE si tanto $a como $b son TRUE.
|
|
$a ||
$b
|
Or (o
inclusivo)
|
TRUE si cualquiera de $a o $b es TRUE.
|
OPERADORES
DE COMPARACIÓN:
Los operadores de
comparación, como su nombre lo indica, permiten comparar dos valores. Puede
también estar interesado en ver las tablas de comparación de tipos,
ya que muestran ejemplos de las varias comparaciones relacionadas con tipos.
|
Operadores de comparación
|
||
|
Ejemplo
|
Nombre
|
Resultado
|
|
$a == $b
|
Igual
|
TRUE si $a es igual a $b después
de la manipulación de tipos.
|
|
$a === $b
|
Idéntico
|
TRUE si $a es igual a $b, y son del
mismo tipo.
|
|
$a != $b
|
Diferente
|
TRUE si $a no es igual
a $b después de la manipulación de tipos.
|
|
$a <> $b
|
Diferente
|
TRUE si $a no es igual
a $b después de la manipulación de tipos.
|
|
$a !== $b
|
No idéntico
|
TRUE si $a no es igual a $b, o si no
son del mismo tipo.
|
|
$a < $b
|
Menor que
|
TRUE si $a es estrictamente menor
que $b.
|
|
$a > $b
|
Mayor que
|
TRUE si $a es estrictamente mayor
que $b.
|
|
$a <= $b
|
Menor o igual que
|
TRUE si $a es menor o igual que $b.
|
|
$a >= $b
|
Mayor o igual que
|
TRUE si $a es mayor o igual que $b.
|
|
$a <=> $b
|
Operador "Nave espacial"
|
0 si $a y $b son iguales, 1
si $a es mayor que $b, -1 si $b es mayor que $a.
Dis
Disponible a partir de PHP 7. |
Si se compara un número con
un string o la comparación implica strings numéricos, entonces cada string es convertido en
un número y la comparación realizada numéricamente. Estas
reglas también se aplican a la sentencia switch.
La conversión de tipo no tiene lugar cuando la comparación es === o !== ya que
esto involucra comparar el tipo así como el valor.
|
Tipo de operando 1
|
Tipo de operando 2
|
Resultado
|
|
Convierte
NULL en "", comparación
numérica o léxica |
||
|
cualquiera
|
||
|
Las
clases internas pueden definir su propia comparación, diferentes clases son
incomparables, la misma clase - comparan propiedades en la misma forma que
los arrays (PHP 4), PHP 5 tiene su propia explicación
|
||
|
Traducir
las cadenas y recursos a números, matemática usual
|
||
|
Un
array con menos elementos es menor, si una clave del operando 1 no se
encuentra en el operando 2 entonces los arrays son incomparables, de otra
forma - compara valor por valor (ver el siguiente ejemplo)
|
||
|
cualquiera
|
||
|
cualquiera
|
BUCLES
O CICLOS:
ESTRUCTURAS REPETITIVAS O BUCLES
EN PHP
Las estructuras repetitivas
(bucles) son aquellas que reiteran una o un grupo de instrucciones
"n" veces y dependen de una variable de control del ciclo. Es decir,
ejecutan una o varias instrucciones un número de veces definido. Las
instrucciones básicas que permiten construir este tipo de estructuras son
while, do ... while y for.
LA INSTRUCCIÓN WHILE
La instrucción while (que en
castellano se traduciría como “mientras…”) ejecuta una porción de programa
mientras se cumpla una cierta condición.
Mientras la condición sea
verdadera, se ejecutan las instrucciones contenidas en el while. Cuando deja de
cumplirse la condición, se sale del ciclo y se continúa ejecutando el resto del
programa.
Si la condición no se cumple ni
la primera vez que se comprueba, las líneas en el interior del while no se
ejecutarán ni una vez.
La estructura general o sintaxis
habitual de un bucle while es la siguiente:
|
<?php
while (condición) {
... sentencias;
}
?>
|
En este fragmento de código
estaríamos indicando que mientras se cumpla la condición se realizan las
sentencias, y en este caso si no se cumpliese la condición se seguiría
ejecutando el programa o mostrando los contenidos de la página web justo
después del cierre de la instrucción while (que queda determinado por el
símbolo de cierre } ).
LA INSTRUCCIÓN DO … WHILE
La estructura repetitiva do-while
(en castellano equivaldría a hacer… mientras) es muy similar a la estructura
while, excepto que la expresión verdadera es verificada al final de cada
iteración en lugar de al principio. La diferencia principal con los bucles
while es que está garantizado que se ejecuten las instrucciones que contienen,
al menos una vez (la verificación de si se tiene que repetir el proceso se
realiza al final de la repetición de la estructura.
La estructura general o sintaxis
habitual de un bucle do while es la siguiente:
|
<?php
do {
…sentencias
} while(condición);
?>
|
En este fragmento de código
estaríamos indicando que se ejecute una primera vez “sí o sí” las sentencias, y
que después se evalúe la condición para comprobar si se deben ejecutar
nuevamente las sentencias. Como vemos, aunque no se cumpla la condición las
sentencias se ejecutarían al menos una primera vez.
LA INSTRUCCIÓN FOR
La estructura repetitiva for (en
castellano se traduciría como “desde…”) se utiliza generalmente cuando tenemos
bien determinada la cantidad de repeticiones a realizar. Se diferencia de las
anteriores en que se debe incluir en la propia instrucción una variable de
control, la cual se incrementa o decrementa de forma automática. La estructura
de estas instrucciones viene a ser muy similar a la anterior.
La estructura general o sintaxis
habitual de un bucle for es la siguiente:
|
<?php
for ($variable=valor_inicial;
condición; incremento) {
... sentencias;
}
?>
|
En este fragmento de código
estaríamos indicando que mientras se cumpla la condición se realizan las
sentencias, y en este caso si no se cumpliese la condición se seguiría
ejecutando el programa justo después del cierre de la instrucción for (}). Todo
esto es igual a la instrucción while anteriormente citada, salvo que en la propia
declaración de la estructura se encuentra la variable de control, que en cada
repetición se incrementa automáticamente.
Esta instrucción consta, por
tanto, de tres parámetros:
- Inicialización de la variable que se utilizará en la condición.
- Condición que se debe cumplir para permanecer en el ciclo.
- Modificación de la variable utilizada en la condición.
ESTRUCTURAS CONDICIONALES
En PHP existen una serie de
instrucciones que permiten tomar decisiones lógicas cuando programamos: estas
instrucciones, comunes a distintos lenguajes de programación, se suelen
denominar de forma general "condicionales".
- if...else
- if...elseif...else
- switch
CONDICIONAL IF…ELSE EN PHP
Estas instrucciones son quizás
las más usadas de todos los lenguajes de programación, ya que son las más
básicas. IF (en español: si…) ELSE (en español: sino…). La estructura general
de un condicional if else es la siguiente:
|
if(expresión) {
... sentencias 1, 2, 3 … ;
} else {
... sentencias A, B, C …;
}
|
En este trozo de código
estaríamos diciendo que si la expresión se cumple se ejecutan las sentencias 1,
2, 3…, y en caso de que no se cumpliese la expresión se ejecutarían las
sentencias que están dentro del else, es decir, las sentencias A, B, C …
Como
podrás comprobar, el código produce el mismo resultado. Unicamente hemos
introducido algunos caracteres para mejorar la forma en que se ve (recordar que
  seguido de un punto y coma, sin espacio entre ambos, equivale a un
espacio en blanco en HTML). Compara las similitudes y diferencias entre los dos
códigos que hemos escrito. En nuestro ejemplo2 podrás comprobar que hemos
escrito un fragmento de código php, luego un fragmento de código html y luego
otro fragmento en php. Si te fijas, no hemos utilizado las etiquetas de
apertura y cierre de html, aunque hubiera sido quizás más correcto hacerlo
Como comprobarás, a veces los
navegadores son capaces de interpretar el código aunque falten algunas
etiquetas o contenga algunos errores. Esta es una de las cuestiones que
diferencia HTML de lenguajes de programación en sentido estricto como C, Java o
Visual Basic, donde la sintaxis es mucho más estricta.
En este código además podemos
señalar:
- Usamos el código   que en HTML significa “un espacio”.
Recuerda que HTML omite los espacios antes y después de una cadena de
texto. Por ello hemos de especificar que se introduzcan espacios con
 .
- Un salto de línea, que introducimos gracias a la etiqueta
<br/>, podemos escribirlo tanto fuera del código php como dentro de
él. Para introducirlo dentro de php, hemos de ponerlo dentro de un echo,
que es la forma que tenemos de indicarle a php de que dé salida a esa
etiqueta como código html.
¿Qué pasaría si introdujéramos
una etiqueta html como <br/> directamente dentro del código php? Pruébalo
y comprobarás que en el navegador se muestra un mensaje de error de este tipo:
Parse
error: syntax error, unexpected '<' in
/home/m/dom/mi.com/public_html/prueba.php on line 11
Esta es una cuestión que debes de
tener en cuenta: para introducir html debes de cerrar un bloque php o usar una
instrucción echo dentro del bloque php. La instrucción echo viene significando
“dar salida html a lo que va a continuación”.
CONDICIONALES IF...ELSE
IF...ELSE EN PHP
La estructura de estas
instrucciones viene a ser muy similar que la anterior. Su significado: “Si
ocurre esto, haz esto, sino si ocurre esta otra cosa, haz esto otro, sino si
ocurre esta otro cosa, haz …”. La estructura general de un condicional if else
if [else] es:
|
if(expresión)
{
... sentencias 1, 2, 3, …;
} else
if(expresión) {
... sentencias A, B, C, …;
} else
{
... sentencias M, N, O, …;
}
|
Esta es la síntaxis con la que
debe ser usada else if. Un else if se ejecutará, siempre y cuando, no haya
alguna respuesta verdadera en el if o else if anterior; luego de que se llega
al final de los else if, y ninguno ha sido verdadero, se ejecutará lo que está
dentro del else final.
Pueden haber varios else if, pero
estos están siempre dentro de un if y terminarán con un else (sólo uno) final.
OPERADOR CONDICIONAL TERNARIO
Para escribir condicionales la
estructura básica de lenguajes como PHP, JavaScript, Java, y otros es la
sentencia if. Otro tipo de condicionales como el switch o el else if pueden ser
reemplazados por if. Hay otra sintaxis de condicional que se denomina operador
condicional ternario y que se escribe con expresiones que incluyen una
interrogación y dos puntos como: a ? b : c;
La sintaxis y significado del
operador condicional ternario (válida para diferentes lenguajes, como PHP,
JavaScript, Java, etc.) es la siguiente:
|
expresiónConValorBooleano
? expresión1 : expresión2;
Interpretación: si la expresiónConValorBooleano es cierta se ejecuta la expresión1,
y en caso contrario se ejecuta la expresión2.
|
Ejemplos. Supongamos que tenemos
cuatro variables: A = 5, B = 3, C = -7 y D = 5
|
Expresión
|
Resultado
|
|
A==5 ?
dispara(): espera();
|
Se
ejecuta dispara()
|
|
A<B
? dispara(): espera();
|
Se
ejecuta espera()
|
|
B<C
? dispara(): espera();
|
Se
ejecuta espera()
|
|
A<B
&& B>C ? dispara(): espera();
|
Se
ejecuta espera()
|
|
A<B
&& B>C || B==3 ? dispara(): espera();
|
Se
ejecuta dispara()
|
|
A==5 ?
A=20: A=1;
|
Si A
valía 5 ahora vale 20, caso contrario ahora vale 1.
|
|
B =
B==3 ? B*10: B*100;
|
Se
trata de una asignación: si B valía 3, ahora B vale 10 veces
lo que
valía, caso contrario ahora B vale 100 veces lo que valía.
|
El operador ternario puede ser
insertado en sentencias de ejecución donde no se permite la inserción de if,
por ejemplo en una operación de asignación o en la variable de control de un
bucle for. Usar el operador condicional ternario tiene ventajas e
inconvenientes.
VENTAJAS E
INCONVENIENTES DEL OPERADOR CONDICIONAL TERNARIO
En la siguiente tabla resumimos
las ventajas e inconvenientes del operador condicional ternario comparándolo
con el if tradicional.
|
Condicional
ternario
|
If
tradicional
|
|
Permite
la escritura compacta, permitiendo ahorrar escritura de código.
|
Obliga
a escribir más sentencias para conseguir el mismo resultado.
|
|
Resulta
más difícil de leer, entender y depurar
|
Resulta
más fácil de leer, entender y depurar
|
|
No
todos los programadores lo usan, algunos ni siquiera lo conocen.
|
Todos
los programadores lo usan y lo conocen.
|
|
Se
admite en la sintaxis de los lenguajes en lugares donde no se admite la
sentencia if
|
No es
válido en ciertas ubicaciones donde sólo se admiten expresiones, pero puede
hacerse la evaluación antes del punto donde sea necesario el condicional.
|
|
Criticado
por algunos expertos, adorado por otros
|
Uso y
aceptación cuasi-universal
|
LOS
CONDICIONALES EN PHP
Los condicionales, al igual que las variables, son
los cimientos de la programación. Con ellos podemos modificar el comportamiento
de un script. Existen tres condicionales primarios en PHP.
if
? : : (Esta una manera de abreviar un if, luego la veremos)
switch
? : : (Esta una manera de abreviar un if, luego la veremos)
switch
La
instrucción if
La instrucción if nos da la posibilidad
de ejecutar un fragmento de código si la condición es evaluada
como TRUE (Verdadera), si la condición es FALSE no se
ejecuta y pasa a la siguiente condición hasta que encuentra el
comando ELSE solo si la condición del if es FALSE.
la
condición if va sujeta a la instrucción else aunque no siempre debe aparecer pero,
en el caso de que la condición if nos devuelva FALSE la podemos añadir para mostrar otro
mensaje o que el script siga otro camino.
Como veis no es muy complicado, es
hacer preguntas a nuestro programa y esperar respuesta.
Para todo esto hay una manera de
simplificarlo y es con el operador ? este es un operador ternario y se basa
en tres operandos.
Funciona como una instrucción if pero
devuelve un valor de una de dos expresiones. La expresión condicional determina
el valor de la expresión. Se emplean dos puntos : para
separar las diferentes expresiones.
La
instrucción switch
La instrucción switch compara una expresión con varios
valores y tendrá que ejecutar diferentes fragmentos de código para cada valor
almacenado en la variable.
La
sentencia switch selecciona el valor que aparece
después del comando switch y lo compara con los case en
el orden en el que aparecen, si no coincide con ninguno el código no se
ejecuta, si coincide con alguno se ejecuta hasta que aparece la instrucción break. sino quiere que la ejecución
del script se detenga puede optar por quitar las sentencias break. Esta instrucción tiene una
última instrucción llamada default que hace la misma labor que el else de
la sentencia if, en el caso de que no se cumpla ninguna de las condiciones
saltará a la instrucción default y mostrara lo que tengamos.
INCLUDE
Esta función se utiliza a la
hora de ahorrar trabajo y para incluir un nuevo archivo.
Para evitar
tener que escribir todo el código en un fichero, los lenguajes de programación
incorporan sistemas para “empaquetar” porciones de código en paquetes
independientes que, posteriormente, puedan ser utilizados gracias a
instrucciones del propio lenguaje que permiten la importación de paquetes,
módulos etc. siendo el lenguaje el encargado de cargar los ficheros
pertinentes.
Ejemplo #1 básico
de include
<?php
$color = 'verde';
$fruta = 'manzana';
?>
<?php
echo "Una $fruta $color"; // Una
include 'vars.php';
echo "Una $fruta $color"; // Una manzana verde
?>
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.
INCLUDE_ONCE
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.
Ejemplo:
<?php
include_once "a.php"; // esto incluirá a.php
include_once "A.php"; // esto incluirá a.php otra vez! (sólo PHP 4)
?>
include_once "a.php"; // esto incluirá a.php
include_once "A.php"; // esto incluirá a.php otra vez! (sólo PHP 4)
?>
No hay comentarios:
Publicar un comentario