jueves, 18 de junio de 2015

Proyecto- Investigación

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.

Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una página WML. 

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.

¿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>


STRLEN

Se utiliza para obtener longitud en una cadena.
Ejemplo:
<?php
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);
?>

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;
?>

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;
?>


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
Convierte ambos lados a bool, FALSE < TRUE
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
object es siempre mayor
cualquiera
array es siempre mayor

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 &nbsp 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 &nbsp 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 &nbsp.
  • 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
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)
?>

No hay comentarios:

Publicar un comentario