[C.PHP][I] Introduccion a php e informacion basica sobre la programacion

Discussion in 'Programación & Programación Web' started by LJury, Jul 16, 2009.

  1. LJury

    LJury Usuario Nuevo nvl. 1
    37/41

    Joined:
    Jul 8, 2009
    Messages:
    633
    Likes Received:
    2

    [​IMG]
    Introducción a php e informacion basica sobre la programación

    Bienvenidos al segundo capitulo del curso php, espero que allan leído el primero, pero dudo que sea tan necesario, aunque de todas formas, pienso que antes de poder incorporarnos un poco mas lejos tenemos que aprender las cosas basicas y el como funcionan los programas que vamos a usar.

    y como dice el titulo, en este capitulo vamos a tratar una introduccion a php y algo de informacion basica la programacion, suerte.


    Primero, que es php?, como se dijo en el capitulo anterior php es un lenguaje de programacion, directamente de internet (wikipedia) extraje las diferentes ventajas y desventajas de php que se han planteado en esa misma pagina e ire explicandolas por si no entienden a que se refieren.

    ventajas:

    1. es multiplataforma ( si usamos windows y un amigo nuestro usa linux, podra ver nuestras creaciones sin problema).
    2. Completamente orientado a la web (cada una de las funciones de php estan echas especialmente para trabajar con paginas web y todos sus contenidos)
    3. Se puede conectar con las bases de datos mas utilizadas (para que irnos por callenojes, las base de datos es donde se guardan datos y nos permiten hacer paginas aun mas dinamicas [ej: foros]
    4. Puede expandir su potencial utilizando modulos (son trozos de software o scripts, o de otra manera son como librerias para php, que nos ayudaran a ahorrarnos horas de trabajo)
    5. Posee documentacion en su pagina oficial (algo que destaca bastante en php y que me agrada del todo... si alguien es realmente aplicado, y no pierde niun segundo, podria aprender php totalmente de su pagina oficial, pero de momento xD sigan mi curso... )
    6. Es libre (osea, si hacemos un programa no nos tenemos que preocupar de que los creadores de php, etc.. podemos hacer software y decir "es nuestro software, nada con los creadores de php")
    7. permite tecnicas de POO (programacion orientada a objetos)(para los que inician, estas tecnicas tratan de trabajar con objetos, por ejemplo... yo creo un objeto con ciertas caracteristicas, por ejemplo puedo hacer un objeto auto, un objeto motor.. el objeto auto tiene caracteristicas como modelo, color, numero de asientos y el objeto motor tiene caracteristicas como potencia, capacidad, etc.. y podemos trabajar como queramos con los objetos, ej: el objeto auto tiene un objeto motor. p.s: yo aun no inicio del todo con POO en php, pero e trabajado con POO antes)
    8. No requiere definicion de tipos de variables ( esto es bueno y malo, por que?,llamemosle variable a un trozo de papel que tiene algo escrito, este papel puede tener una letra, un numero, algo escrito, en otros idiomas nosotros tenemos que definir el tipo de la variable "variable1 es una variable de tipo numero", esto de definir el tipo hace que nuestros codigos se ejecuten levemente mas rapido (en php se recomienda definir variables para mejorar el codigo)
    9. Tiene manejo de excepciones (desde PHP5) ( m.. nose xD, no reconosco el nombre )
    10. Nos permite usar nuestras propias tecnicas de programacion
    desventajas

    1. ESTO es lo mas lamentable de php, la unica manera de ocultar los codigo fuente, es usando una tecnica llamada "ofuscacion", de que se trata la ofuscacion?, simple. hacer nuestro codigo ultra mega dificil de leer. esta es una de las cosas que me dan rabia como programador, hay gente que no le importa el trabajo del resto ( estoy del lado del software libre, pero tampoco quiero que si hago algo "grande" cualquiera pueda tenerlo ), si hacemos un programa en php, desde que lo subimos a nuestro hosting, tecnicamente cualquier persona con un poco de conocimiento podra copiarnos el programa, hay programas que su principal funcion es descargar TODO el contenido de un dominio (web), entonces es cosa de que digan el dominio de nuestra pagina y listo.. en un tiempo tendran todo el contenido de la misma, todos los scripts php, etc... (y por aqui hay una forma muy facil de poder obtener las claves de las bases de datos xD pero no hablare mas o me saldra el.. ya se me olvido el dicho)
    Bueno, hasta aqui ya les e hablado un poco sobre las principales ventajas y desventajas de php, ahora comenzaremos con algunas cosas basicas sobre la programacion (si se me escapa algo diganme para poder ingresarlo)

    Terminologia basica:

    documento .php ; bueno, espero que alguno alla tratado de hacerlo, hacer que? hacer un archivo php y ver que tal... ahora les comentare como se crea un archivo php y que caracteristicas nesecita para comportarse como tal, para comenzar, espero que todos sepan sobre los documentos html. bueno, ustedes saben que estos documentos terminan con la extencion html/htm, pero obviamente un script php termina en ".php", otro detalle que deben saber es que php tambien puede tener los tags de html... voy a explicarlo asi, tenemos un documento php este tiene dentro texto comun y corriente nosotros dijimos en el capitulo anterior que estos pasaban por el protoloco http, osea que el navegador no toca el documento php, EL SERVIDOR (apache en nuestro caso) se encarga de enviarnos el texto en plano para que el explorador no transforme...
    pero antes php (se supone que tenemos instalado php en nuestro equipo ya que viene con xampp), php lo que hace es procesar las instrucciones de php, para poder explicarme un poco mejor, hay una funcion muy usada (en verdad son 2), lo que hace esta funcion es imprimir lo que le indiquemos como texto, osea que si esta funcion imprimie algo, entonces al enviar este contenido el explorador lo analizara como si fuera un html, por lo que si le decimos a un script php que imprima los tags de html mas una frase cualquiera, entonces lo que veresmos seria una pagina html cualquiera mas esa frase que le indicamos, esta funcion es "echo", pero aun asi hay un problema con esto, ¿cual es?, supongamos que nuestra pagina php tenga lo siguiente
    echo "esta cadena se debe imprimir";

    si ponemos simplemente eso, entonces lo que veremos en el navegador sera

    echo "esta cadena se debe imprimir";

    lo primero que uno piensa es, que demonios? yo quiero que imprima "esta cadena se debe imprimir" pero por que aparecio el "echo" y el punto y coma final?... bueno, resulta que el echo no fue analizado por php, por que? por que tenemos que ponerlos entre dos tags los cuales son "<?" y "?>" tambien pueden ser asi "<?php" y "?>" en otras palabras, todo lo que este entre "<?" y "?>" sera analizado por php, entonces, si nosotros ponemos lo siguiente en nuestro script php

    <? echo "esta cadena se debe imprimir"; ?>

    en el explorador veremos esto

    esta cadena se debe imprimir

    por si no se habran dado cuenta, ya estamos trabajando con la sintaxis basica de php, bueno sigamos... que otros detalles hay que analizar para que podamos seguir? si se habran dado cuenta, estamos usando "punto y coma" donde termina esta cadena, para que sirve el punto y coma ";" el punto y coma delimita las diferentes funciones, por ejemplo si nosotros queremos usar 2 echo's tenemos que hacer lo siguiente

    <? echo "esta cadena se debe imprimir";
    echo " y esta es otra cadena que se debe imprimir"; ?>

    espero que esto sea suficiente para poder trabajar con php por ahi, seguiremos con otros contenidos, cualquier duda que alla quedado porfavor diganme para mejorar el contenido.

    Comentarios ; Los comentarios son importantes para poder guiarnos mejor en el codigo, por ejemplo un codigo de 1000 lineas.. en algun momento nos podriamos perder, es buena practica en programacion ir poniendo que hacen cada lineas. pero, que son los comentarios?, son pedasos de codigo que no hacen NADA!... y como eso?
    si ponemos lo siguiente
    // todo lo que vendra luego de esas dos lineas no sera nada para php
    # en caso de poner un gato nos da el mismo resultado, no pasara nada

    osea ese codigo no sera expresado ni analizado por php

    Variable ; bueno, cuando yo recien comenzaba este termino me causo muchos problemas (y nose si al resto de la gente le ocurrira igual) por lo que tratare de explicar bien de que se trata, tal como dice su nombre, "variable" es algo que puede "variar" (que lindo no?), yo personalmente me refiero a las variables como un espacio determinado en un cuaderno (si es que el cuaderno fuera la ram). en ese espacio determinado nosotros ponemos un valor, ese valor puede tener distintos "tipos" y distintos "valores", esos valores pueden ser, numeros, letras, decimales, un valor booleano, una lista, etc, tambien esa variable se define por un nombre.
    ejemplos:
    x = 2
    y = 7

    Las variables en los lenguajes de programacion ; en los diferentes lenguajes de programacion, las variables pueden ser tratados de diferentes formas y formas de referirse a ellas.
    por ejemplo en php para poder asignar un valor a una variable tendriamos que hacer lo siguiente

    $variable = 22

    por que el signo dolar?, bueno, en php se llego a que las variables tienen que llevar ese signo dolar, ¿por que esto?, en verdad no sabria decirles correctamente, pero es una de las caracteristicas de php.
    en cambio, si vemos en ruby, las variables pueden ser de 3 formas
    @variable
    $variable
    variable
    esas 3 varibles seran diferentes, por que tienen distintos alcances pero esto no nos importa en ruby, asi que seguiremos con php.

    Tipos de variables : antes hablamos sobre los tipos de variables, esto no es tan especifico para php es mas como algo global y esto es algo bueno de la programacion, si sabes programar en un idioma, no te costara mucho aprender otros. los tipos de variable se refiere al tipo de contenido que tiene la variable (numerica, caracter, etc..)

    Booleano = estas variables vienen de la ley de bool o algo asi, el punto es que los numeros booleanos representan principalmente el 1 y el 0, les suena ahora?... el 1 representa el valor True y el 0 representa el valor False, es importante comprender bien como funcionan los numeros booleanos con operadores (por ejemplo, este numero es mayor que este o este es igual que este... pero ya lo veremos mas adelante)

    int = viene del ingles "integer" y se refiere a la palabra "entero" en otras palabras la variables de tipo "int" no son mas que variables que tienen un numero asignado, en SQL nos vamos a dar cuenta con que "INT" se divide en varias subcategorias mas... tinyint (int pequeño), Bigint, ademas de que podemos darle el atributo "unsigned" (sin signo, osea, sera siempre positivo).

    float = bueno, aqui ya dudo que alguno se imagine a que se refiere uno cuando dice "float", bueno.. float viene de "flotar" (noooo!!, enserio xD!?) :zippynana: se, enserio, se refiere a numeros de coma flotante.. osea, es un numero que tiene una coma flotando por ahi, (perdonen por si no me lo tome muy enserio, pero nesecitaba alargar un poco esto)

    ahora, los numeros de coma flotante pueden representarse como notacion cientifica, PERO ESTO NO OCURRE en php.. (porlomenos no que yo sepa, esto este caso se da en python, donde los numeros muy grandes se pueden representar en notacion cientifica).
    ejemplo:
    $float = 2.546
    $float = 2.5448

    (aunque en verdad dudo que los usemos mucho, porlomenos yo nunca e usado float's en php)

    string = bueno, con los strings la cosa se complica un poco mas 'string = cadena' una cadena?, pero cadena de que?... bueno, los string son cadenas de texto, por ejemplo:
    $string = esto es una cadena de texto
    por que?, resulta que en php y en muchos lenguajes mas las variables string tienen que estar en comillas dobles y/o simples (variando segun los idiomas) en php podemos usar comillas dobles o simples y cada una nos dan caracteristicas diferentes. aqui les dare unos cuantos ejemplos.


    1. $string = "esta es una cadena string"; <-- esta bien$
    2. string = "esta es una 'cadena' string"; <-- esta bien
    3. $string = "esta es una" cadena string"; <-- ESTA MAL!
    ¿por que esta mal?, por que las comillas delimitan el principio y el final de una cadena, entonces que ocurre si nosotros ponemos unas comillas en medio de la cadena, el resto queda como un conjunto de datos en la nada,pero.. por que la variable anterior esta bien?, bueno, como dije, las comillas dobles y simples nos dan características diferentes. por ejemplo las comillas dobles nos dan como característica que si ponemos comillas simples dentro de ellas, estas estarán allí como texto.

    me ocurrio que estaba editando esto y pase a cerrar la ventana xD asi que no me explicare tanto... bueno que ocurre si queremos mostrar un texto con una comilla doble?, lo que tenemos que hacer es escapar el caracter.. que sginifica escapar?, no tengo ni idea... lo que importa es que para escapar un caracter tenemos que anteponerle una barra invertida ( \ )
    osea, para imprimir la 3 cadena correctamente deberia ser

    $string = "esta es una\" cadena string";

    esa cadena nos deberia imprimir lo siguiente

    esta es una" cadena string

    que otras funciones tiene la barra invertida?, si en el codigo php imprimimos lo siguiente \n sera como si hubieramos apretado la tecla enter, por lo que en el codigo html veremos la diferencia, aunque personalmente encuentro que es algo totalmente inutil.


    Operadores: que son los operadores?, son con quienes operamos :zippynana: (creanme, uno queda chato despues de haber cerrado una ventana en la que habia escrito tanto u_U)...

    bueno, esto lo hare rapido... los operadores son aquellos simbolos con los que hacemos operaciones... bueno, hay 4 tipos de operadores que normalmente rigen para casi todos los lenguajes de programacion, el primer grupo son.

    Operadores Aritmeticos
    + | Funciona tal como la suma
    - | Como la resta // tambien funciona como el operador NOT
    * | Multiplicacion
    / | Divicion de valores
    % | devuelve el resto, si repartimos 3 dulces entre 2 niños, nos resta 1
    ++ | incrementa el valor de algo en una unidad
    -- | decrece el valor de algo en una unidad

    Operadores de logica (OJO! estos son ultra importantisimos =D!)
    por que? luego se daran cuenta de que sus codigos se basan en esto!
    p.s: ingles hermano D:! ingles!

    ! | este es el "NOT" que mencione arriba, es un negador, si tenemos un valor booleano TRUE lo transforma en FALSE
    and | (Y) este operador devuelve verdadero si ambos valore son verdaderos
    or | (O) devuelve verdadero si al menos un valor es verdadero
    Xor | or exclusivo, devuelve verdadero si uno es verdadero pero no los dos
    && funciona igual que el "and"
    || funciona igual que el "or"

    bueno aqui tengo un poco de miedo de que no allan entendido bien, pero.. no se preocupen, se los explicare un poco mas adelante con ejemplos.


    Operadores asignadores:
    = | el primer valor el copia el valor al segundo
    += | el primer valor pasa a tener el valor de ambos sumados
    -= | el primer valor gana el valor de la resta entre derecha e izquierda
    *= | igual que arriba pero multiplica
    /= | igual que arriba pero divide
    %= | igual que arriba pero con resto
    .= | es igual que la suma, pero este sirve para unir cadenas (ya entenderan este puntito tan especial)

    Operadores de no se que (pero no importa el nombre):
    == | devuelve verdadero si ambos valores son iguales
    != | verdadero si los valore son distintos
    > | verdadero si el valor de la izquierda es mayor al de la derecha
    >= | verdadero si el valor de la izquierda es mayor o igual a de la derecha
    < | verdadero si el valor de la derecha es mayor al de la izquierda
    <= | verdadero si el valor de la derecha es mayor o igual a de la izquierda


    ahora procedere a explicar como funcionan cada uno de ellos (espero que hasta ahora comprendan bien como funcionan las variables, etc)


    EJEMPLOS

    Operadores Aritmeticos

    2 + 4 ---> nos devuelve 6
    4 - 2 ---> nos devuelve 2
    2 * 2 ----> nos devuelve 4
    4 / 2 ----> nos devuelve 2
    9 % 2 ---> dividimos 9/2 y nos da 8, pero quedo 1 unidad suelta (resto)
    ++1 ----> nos devuelve 2
    --2 ----> nos devuelve 1

    bueno, si alguien tiene una duda aqui.. consejo personal, dediquese a otra cosa.. por que no saber sumar, restar, dividir, multiplicar... xD..


    Operadores de logica

    !false ---> nos devolvera true
    true and true ---> nos devolvera true
    true and false ---> nos devolvera false
    true or true ---> nos devuelve true
    true or false ---> nos devuelve true
    false or false ---> nos devuelve false
    true xor true ---> nos devuelve false
    true xor false ---> nos devuelve true
    && funciona igual que and
    true && true ----> devuelve true
    true && false ----> devuelve false
    true || false ----> devuelve true
    false || false ----> devuelve false

    (si no entienden alguno pregunten y lo explico mejor)

    Operadores asignadores:

    estos los vamos a tratar con variables para que entiendan un poco mejor
    primero asignaremos valores a 2 variables (p.s: lo hare como si fuera codigo php)

    $var1 = 10; // asignamos 10 a var1
    $var2 = 5; // asignamos 5 a var2

    $var3 = $var1 #asignamos el valor de var1 a var3 ahora var3 vale 10
    $var3 += $var1 #ahora var3 sera igual a var3 + var1
    este operador lo explico mejor, lo que pasa es que se usa ese operador para poder ahorrarnos la siguiente exprecion que desde el punto de vista de algunas personas se ve mal en la programacion (poco elegante)
    $var3 = $var1 + $var3 // es igual que += ahora var3 valdra 20

    $var3 -= $var1 // igual que arriba, ahora var3 valdra 10 nuevamente
    $var3 *= $var1 // igual que arriba, ahora var3 valdra 100
    $var3 /= $var2 // igual que arriba, ahora var3 valdra 20
    $var3 %= 3 // ahora var3 valdra 2

    ahora, espero que tengan dudas sobre el mitico puntito, que es tan especial..
    pues, no se los explicare! busquen ustedes mismos! :zippynana:... no mentira xD, seria muy mal profesor si isciera eso... m.. en verdad no tanto, asi que se los explico a continuacion, cuando trabajamos con cadenas. nosotros podemos hacer lo siguiente (mira que aqui me fallo el orde, debi haber puesto esto con las cadenas)

    vean como funciona el punto por ustedes mismos (me gusta esto de php)

    $var4 = "hola "; // le asignamos "hola" a var4
    $var5 = "como estas?"; // le asignamos "como estas?" a var5

    ahora si llegaramos a hacer lo siguiente, estaria incorrecto

    $var6 = $var4 + $var5; // (en verdad nose por que esto devuelve false xD!, //recien me di cuenta, tendre que analizarlo... =D )

    #en fin eso NO sumrara las cadenas, y para eso nos sirve el punto

    $var6 = $var4 . $var5; // ahora SI seria correcto
    echo $var6; // nos daria "hola como estas?"

    tambien podriamos hacer lo siguiente
    $var4 = $var4 . $var5; // ahora var4 valdria lo mismo que var6
    //pero esto lo podemos hacer de manera mas "elegante"
    $var4 .= $var5;

    p.s: creo (no estoy seguro) que si usamos los operadores +=,-=,*=,/=,%=,.= nuestra operacion es ligeramente mas rapida que hacer algo como $variable = $variable + $otra_variable;

    y ahora nos faltan los ultimos operadores con los que podremos terminar nuestro segundo capitulo =D.

    los operadores a continuacion nos devuelven true o false segun los datos que les pidamos analizar

    $variable1 = 2; // asignamos 2 a variable1
    $variable2 = 5; // asignamos 5 a variable2
    $variable3 = 3; // asignamos 3 a variable3

    $variable1 == $variable2; // nos devuelve false por que no son iguales
    $variable1 != $variable2; // nos devuelve true por que son diferentes
    $variable1 > $variable2; // nos devuelve false por que 2 no es mayor que 5
    $variable1 += $variable3; // ahora variable1 vale 5 (2+3)
    $variable1 == $variable2; // ahora nos devuelve true por que son iguales
    $variable3 < $variable2; //verdadero por que variable2 es mayor
    esto tambien podemos hacerlo con numeros, no nesesariamente tienen que ser variables.

    3 <= 4; // devolvera verdadero por que 4 es mayor que 3
    3 >= 3; // devolvera verdadero, a pesar de que 3 es mayor que 3 son iguales (mayor o igual que)

    en verdad no me quiero encerrar mucho en estos operadores, por que.. asumo que a todos se los enseñaron en matematicas... bueno, de todas formas si alguno tiene dudas, me avisa y pondre mas informacion al respecto

    dato extra:
    casi se me olvidaba esto, aqui los operadores tienen un orden para funcionar, por ejemplo, en matematicas si tenemos lo siguiente:
    2+4*2/2 --> primero hacemos las divisiones y multiplicaciones y luego las sumas y restas, y si hay una multiplicacion y division en el mismo espacio bueno... pues se hacen de izquierda a derecha. pero no quiero que se compliquen mucho con esto
    esa misma operacion podriamos ponerla asi:
    (2+((4*2)/2)) (alomejor sin tantos parentesis pero se entiendio la idea)
    el punto es que los operadores tienen un orden y a las tablas que e visto no les e tomado atencion por que las considero innesesarias, si alguno quiere saber esa tabla de la que hablo, digamelo y se la busco (eso si mas le vale que se la aprenda ¬_¬')




    :zippynana:
    bueno, ahora voy a poner unos cuantos ejercicios echos a la rapida, y me gustaria que cada uno envia un mensaje privado con las respuestas, si encuentran que son ridiculos los ejercicios, bueno, no los hagan, no estan obligados ni nada, solo que cuando yo lei sobre los operadores habian unos ejercicios xD!...


    Ejercicios capitulo 1:(en el mp deve ir el numero del ejercicio y el resultado)




    1. 4 == (2*2);
    2. 4 <= 16%6;
    3. 3 != "hola";
    4. (2 != 3) xor false;
    5. 1 && ( 2 <= 4);
    6. en verdad ya no se me ocurren mas ejercicios... y es tarde (las 4) no tengo ganas de hacer mas asi que si quieren hacer esos que deje ahi, bien por ustedes =).

     
  2. mr_crowley

    mr_crowley Usuario Casual nvl. 2
    97/163

    Joined:
    Aug 14, 2008
    Messages:
    8,475
    Likes Received:
    47
    buena perro !!! q pasa con el tutorial
    va a seguir?
    cuando se viene el siguiente capitulo??
     
  3. LJury

    LJury Usuario Nuevo nvl. 1
    17/41

    Joined:
    Jul 8, 2009
    Messages:
    633
    Likes Received:
    2
    el siguiente capitulo ya esta.. pero estos dias e estado super ocupado.. y ahora me meti haber si aun habia gente interesada (con tu post me doy cuenta de que si.. xP.. ojalas alla mas)

    terminare el segundo capitulo (ya subi una parte) lo mas pronto posible
     
  4. JAH PABLO

    JAH PABLO Invitado

    se agradece man
     
  5. EL PEQUENHO PEPE

    EL PEQUENHO PEPE Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Jan 11, 2009
    Messages:
    14,535
    Likes Received:
    16
    SHUU TERMINARE MAÑANA LEYENDO ESTO!!:XD:

    SE AGRADeCE LA INFO!
     
  6. mr_crowley

    mr_crowley Usuario Casual nvl. 2
    97/163

    Joined:
    Aug 14, 2008
    Messages:
    8,475
    Likes Received:
    47
    estaremos esperando, se agradece !!!
     
  7. El Fin

    El Fin Usuario Habitual nvl.3 ★
    187/244

    Joined:
    Oct 2, 2009
    Messages:
    16,562
    Likes Received:
    16
    Aqui pongo un ejemplo de variables ;D.

    juanito:¿cual es su $nombre?
    pedrito:pedrito
    juanito:que $habitacion quiere que le pintemos?
    pedrito:el baño
    juanito:¿de que $color quiere que la pintemos?
    pedrito: verde

    juanito: ¡¡oye jano!!, pinta la $habitacion de $nombre con color $color

    con esto lo que dijo juanito fue:

    "pinta el baño de pedrito con color verde"

    aplicacion en php
    [​IMG]


    Un Saludo.
     
  8. the kamikase

    the kamikase Usuario Maestro nvl. 6 ★ ★ ★ ★
    697/812

    Joined:
    Sep 19, 2008
    Messages:
    68,365
    Likes Received:
    42
    gracias viejo !
     
  9. cavoso

    cavoso Usuario Casual nvl. 2
    37/41

    Joined:
    May 31, 2008
    Messages:
    2,727
    Likes Received:
    13
    se agradece mucho