Espiral

La ortografía, escribir bien y tal, es comparable a los estándares web: están los que los cumplen para ponerse la pegatina de gente que sabe y los que no los cumplen porque opinan que son inútiles. Poca gente los cumplen por el valor práctico que conllevan, ese de que tu página se vea en todos los navegadores que siguen las normas de la W3C, o de que tu mensaje sea leído correctamente por todos los hispanohablantes que siguen las normas de la RAE. Hacer las cosas bien por el hecho de que se diga que sabes hacerlas bien es lo que suele mover a la gente, más que los beneficios que conlleva hacerlas bien. Sobre todo porque a veces es más beneficioso hacerlas mal.

No es por echarme flores (bueno, sí, sí que lo es), pero yo creo que escribo con ortografía cuasiperfecta. Vamos, encontrarme una tilde de más o de menos es bastante difícil, es una cosa (de las pocas) que domino. Eso me da potestad para hacer de talibán ortográfico, y me gustaría serlo, pero no, no lo soy, no voy por ahí de cruzada pro RAE corrigiendo a la gente en Barrapunto, quizá porque quiera seguir cayendo bien y tal. Así que me he dicho «Shock, tío, contribuye a la causa de la RAE y haz una entrada en tu blog enseñando ortografía a la plebe». Y aquí estoy.

Esta entrada va dirigida a esa gente que escribe más o menos bien pero que tiene fallos tontos, los casos de hoyganismo extremo mejor trátenlos con su logopeda habitual. Voy a poner algunos fallos usuales, la forma correcta y alguna técnica para aprendérselo guay.

  • Hecho/echo. Generalmente se escribe echo en lugar de hecho, el caso contrario es menos usual pero también se da. Lo correcto es emplear hecho cuando nos referimos a hacer («el café está hecho»), y echo cuando nos referimos a echar («me echo en la cama»). Si dudais, poned yo antes de la palabra, si tiene sentido es echo, y si no, hecho.

  • A ver/haber. A ver se emplea como expresión de expectación, o de curiosidad, como enséñamelo o qué pasará. Haber es un infinitivo que no se usa demasiado, generalmente se usa con su sentido de existir, tener lugar. Muchas veces se pone haber en lugar de a ver, o aver, así junto. Pues no, está mal. El truco puede ser poner antes un vamos, si concuerda tendremos un a ver, y si no, un haber. Si sigues con dudas, puedes tratar de cambiarle el verbo a la expresión (vamos a ver -> vamos a ir).

  • Por qué/porque/porqué. Por qué introduce una pregunta (¿por qué la gente es tonta?), porque las responde (porque bebe alcohol) y porqué es sinónimo de razón (el porqué de la existencia, la razón de la existencia). Esto no tiene mucho truco, cuando es pregunta va separado y con tilde y cuando es respuesta, junto sin tilde; cuando es sinónimo de motivo (se usa raras veces, pero bueno) va junto y con tilde.

  • Cómo/como, dónde/donde, etc. Explicar esto es un poco difícil. Estas partículas llevan tilde cuando introducen preguntas (¿dónde vives?, ¿cuándo vendrás?) o cuando dan comienzo a una pregunta subordinada a una frase (no sé dónde vives, dime cuándo vendrás). No llevan tilde cuando funcionan como relativos, es decir, cuando introducen proposiciones subordinadas (vivo donde quiero, vendré cuando quiera). Estas últimas son las que presentan más dificultad; podéis tratar de sustituir por un adverbio de su tipo, en cuyo caso no llevan tilde (vivo donde quiero -> vivo allí, vendré cuando quiera -> vendré mañana; no así en no sé dónde vives -> no sé allí). Más ejemplos aquí.

  • Monosílabos entildados. Es muy usual que la gente se haga la listilla más de la cuenta y ponga tildes donde no hay; los más perjudicados suelen ser los monosílabos. Los monosílabos (palabras de una sola sílaba) no llevan tilde por norma general; existen las excepciones llamadas tildes diacríticas. Si dudas si un monosílabo lleva o no tilde plantéate si tiene más de un significado; si no es así, no lleva tilde (como en ti, donde suele fallar mucho la gente). Si tiene más de un significado es más difícil, pero por norma general, si la palabra es un verbo llevará tilde (dé limones a los pobres, sé dónde vives y voy a por ti). También suele alternarse entre determinantes, que acompañan a un nombre (mi casa es muy fea, el perro es grande), y pronombres, que hace funciones de nombre (pásamela a mí, no creo en él).

  • Solo/sólo. Se dice solo cuando es un adjetivo que denota soledad (él está solo), y sólo cuando es un adverbio que denota exclusividad (tengo sólo dos entradas). Si es un adverbio que no puede confundirse con un adjetivo, se usa también sin tilde (Solo hay tres, pero no así en solo tengo tres, que puede significar yo solo). El truco del almendruco es cambiarlo por solamente, y si tiene sentido, tilde que te pongo.

Bueno, creo que por hoy ya está bien, quizá haga una segunda entrega como hacen los blogstars cuando se me ocurran más, o por clamor popular, o algo. Espero que esto haya servido para despejar un par de dudas y contribuir al correcto uso de nuestra amada lengua.

Aquí iría una foto, pero tranquilo, no te pierdes gran cosa.

Probablemente mi actividad preferida en las seis horas diarias que pasa uno en clase es toquetear la calculadora. A veces hago operaciones estúpidas, en otras ocasiones trato de poner al límite su capacidad calculativa, pero lo más diver que puede ofrecerme este maravilloso aparato es escribir.

Escribir en calculadoras es una ciencia y un arte a partes iguales, requiere concentración, práctica, perseverancia y creatividad. Pero bueno, si careces de alguna de estas cualidades (o de todas) no te preocupes, el maestro Shock se encargará de guiarte por este lustroso camino.

Para escribir en la calculadora, aparte de los atributos antes citados, es necesario que sea una Casio S-V.P.A.M (u otros modelos similares de otras marcas, que no van a ser tratados aquí y que tendréis que aprender por vuestra cuenta, como hice yo con estas). Yo conozco dos tipos básicos: una más simple y otra es más avanzada. Estos tipos tienen varias versiones: están las de dos filas de caracteres, las MS, y las que tienen una pantalla más chachi donde se ilustran mejor las operaciones, las ES. Voy a tomar como ejemplo las dos que tengo, una simple y otra avanzada, ambas de doble fila de caracteres, pero la cosa es más o menos extensible al resto de modelos.

fx-115MS

fx-82MS

fx-115MS, la avanzada.

fx-82MS, la básica.

¿Tienes tu calculadora lista? ¿Estás lo suficientemente aburrido como para hacer caso a una entrada como esta? Pues empecemos la gracia.

Para empezar, si tienes una avanzada, vas a poder escribir más letras, o mejor escritas, que si tienes una básica. La avanzada tiene dos modos que usaremos para escritura, el modo COMP y el modo CMPLX. En el COMP puedes usar las teclas de ALPHA D, E, F, X e Y (no te preocupes si te pierdes, viene abajo explicado), y en el CMPLX puedes usar una L y una i más realistas. ¿Problema? Con el CMPLX no puedes poner ni D ni Y de ninguna forma, así que si vas a usar esas letras en tu mensaje, tendrás que usar el COMP, aunque sea más feo.

Bueno, al turrón.

Letra fx-115MS fx-82MS
A ALPHA + [(-)] ALPHA + [(-)]
B ALPHA + [º ' "] ALPHA + [º ' "]
C ALPHA + [hyp] ALPHA + [hyp]
D ALPHA + [sin] (sólo modo COMP) ALPHA + [sin]
E ALPHA + [cos] (sólo modo COMP) / SHIFT + [ln] (minús.) ALPHA + [cos]
F ALPHA + [tan] (sólo modo COMP) / SHIFT + 1 (minús.) ALPHA + [tan]
G SHIFT + [8] [6]
H - -
I SHIFT + [ENG] (sólo modo CMPLX) / [1] [1]
J - -
K SHIFT + [6] -
L SHIFT + [(-)] (sólo modo CMPLX) / [1] [1]
M ALPHA + [M+] / SHIFT + [5] (minús.) ALPHA + [M+]
N SHIFT + [3] SHIFT + [EXP]
Ñ - -
O [0] [0]
P SHIFT + [x] / SHIFT + [2] (minús.) SHIFT + [x]
Q - -
R SHIFT + [Ans] + [2] SHIFT + [Ans] + [2]
S [5] [5]
T SHIFT + [7] [7]
U SHIFT + [4] [√]
V [√] [√]
W - -
X ALPHA + [)] (sólo modo COMP) / [x] (minús.) ALPHA + [)] / [x] (minús.)
Y ALPHA + [,] (sólo modo COMP) ALPHA + [,]
Z [2] [2]

Como bonus final, para tener una simpática mascota que os acompañe en las más pérfidas clases de Lengua, sólo tenéis que pulsar, en ambas calculadoras, [^] + [.] + [^] y luego desplazar el cursor hasta el punto del centro. Sí, hasta en las calculadoras hay sitio para la vida :P.

En fin, por poner esto en algún lado lo he puesto en la dudosa categoría de Cosas útiles :P. ¿Y tú, cómo escribes en tu calculadora? <modo barrapunto off>

Expresiones

El concepto de expresión puede resultar un poco confuso, pero en realidad es muy sencillo. En PHP, las expresiones son trozos de código que devuelven un valor. Hay muchos tipos de expresiones; las más usadas y usuales son la asignación de variables ($var=1;), las llamadas a función (print("aiya");), la operación de variables y valores sueltos, ya sea aritméticamente o comparativamente (1==1, 1+1), o los simples valores o variables sueltos ($var, 123).

Como dije antes, las expresiones devuelven un valor. Un valor puede ser true (verdadero) si es distinto de 0, o false, si es igual a 0, o bien es nulo (sin valor).

No te preocupes si no has entendido muy bien qué son las expresiones; son algo muy sencillo que se aprende sobre la marcha, pero al menos te haces una idea.

Sentencias

Era necesario explicar más o menos lo que son las expresiones porque las sentencias funcionan en base a ellas.

En realidad, una sentencia es casi todo lo que acaba en punto y coma (;) o está entre llaves ({ }); serían algo similar a las frases de un texto, y se ejecutan una a una. Las sentencias muy a menudo también son expresiones que devuelven un valor. Pero yo me voy a referir a las sentencias de control, una serie de palabras clave que sirven para controlar la ejecución del programa, y encauzarla en una u otra dirección.

Sentencias condicionales

Las sentencias condicionales ejecutan una expresión (que suele ser una comparación) y, si es cierta (devuelve true), ejecuta un bloque de código.

Sentencia if

Es la más sencilla y la más usada.

<?
if(2+2==5) {
     print("Esto no se imprime, porque es falso.");
}
 
if(1) {
     print("Esto se imprime porque 1 devuelve true.");
}
 
$var=2;
 
if($var=1) {
     print("Cuidado con esto, = no es lo mismo que ==, por lo que esto se imprimirá.");
     // Ahora $var vale 1
}
 
if($var<=20) {
    print("1 es menor o igual que 20.");
}
?>

Combinadas con if van las sentencias elseif, que, si la expresión del if es falsa, vuelve a hacer otra comparación, y else, que, si las expresiones de los if y los elseif son falsas, se ejecuta.

<?
if(2+2==5) {
     print("No se imprime.");
} elseif(2+2==4) {
     print("Esto sí se imprime.");
} else {
     print("Esto se imprimiría si 2+2 no fuera 5 ni 4.");
}
?>
Sentencia switch

Este tipo de sentencia toma una expresión, y según lo que devuelva, ejecuta una cosa u otra. Vamos a verlo con un ejemplo con líneas numeradas.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?
switch(2+2) {
     case 5:
          print("Esto no se imprimirá.");
          break;
     case 4:
          print("Esto sí se imprimirá.");
          break;
     default:
          print("Esto se imprimiría si 2+2 no fuera 5 ni 4.");
          break;
}
?>

En la línea 3 vemos una nueva sentencia, case, que lo que hace es comparar la expresión que viene detrás suya con la expresión del switch, la cual vemos en la línea 2. Además, vemos que los bloques case no tienen llaves, sino que empiezan por dos puntos (:), y terminan cuando ven una sentencia break como la de la línea 5.

En la línea 9 vemos otra sentencia nueva, default, que sería el equivalente a else en sentencias tipo if. También empieza por dos puntos y acaba con break;.

Como ya te habrás dado cuenta, este ejemplo y el anterior hacen exactamente lo mismo. Entonces, ¿para qué queremos las sentencias switch? Pues supongo que será simplemente por motivos de elegancia :P. No hay nada que if no pueda hacer que switch sí pueda, aunque sí al revés.

Sentencias de bucle

Un bucle es un bloque de código que se repite mientras una expresión sea verdadera. Estas expresiones casi siempre son comparaciones, ya que de lo contrario se generaría, en la mayoría de los casos, un bucle infinito, es decir, que nunca se detendría.

Bucle while

Este es el bucle más sencillo. Si una expresión es verdadera, se ejecuta el bloque, y al acabar, se vuelve a evaluar la expresión; si sigue siendo verdadera, se vuelve a ejecutar el bloque, y así consecutivamente hasta que la condición sea falsa.

1
2
3
4
5
6
7
<?
$var=1;
while($var<=9) {
     print($var);
     $var++;
}
?>

Este código imprimirá 123456789. Con cada repetición se incrementará el valor de $var, como vemos en la línea 5, y se irá repitiendo hasta que $var deje de ser menor o igual que 9, es decir, cuando $var valga 10.

Sentencias do… while

Son muy similares a while. El bloque de código se pone antes de la comparación de while, después de la palabra clave do, y lo que hace es ejecutar al menos una vez el bloque de código, independientemente de que se cumpla la condición; y después de la primera vuelta, si cumple la condición, funciona como un while normal.

<?
do {
     print("Esto se imprimirá una vez aunque 2+2 no sea 5.");
} while(2+2==5);
 
$var=0;
do {
     print("Esto se imprimirá tres veces.");
     $var++;
} while($var<3);
?>
Bucle for

Este es algo más complejo que los anteriores. Entre sus paréntesis se incluye la declaración de una variable, la condición y la operación que se le hará a la variable con cada vuelta. Generalmente esa variable se usará también en el bloque de código. Veamos un ejemplo.

<?
for($i=1;$i<=9;$i++) {
     print($i);
}
?&gt

El código anterior hace lo mismo que el ejemplo que pusimos con while: imprime 123456789. Entre los paréntesis vemos que primero se declara la variable $i con valor inicial 1, luego especificamos la condición, y luego se opera la variable, normalmente con un incremento.

Sentencias útiles en los bucles

Para usar en bucles tenemos algunas sentencias útiles de una sola palabra.

Una de ellas ya la hemos visto: break. Lo que hace es interrumpir en el punto en el que es ejecutada el bucle y continuar con el programa.

<?
$var=1;
while(1) {
     print($var);
     $var++;
     if($var==10) {
          break;
     }
}
?>

Sí, esto hace lo mismo que el ejemplo que puse con for y con while. No tiene mucho sentido, la verdad, porque es mucho más elegante hacerlo con for o while, pero break puede sernos útil en alguna ocasión.

Otra sentencia útil es continue. Es parecida a break; cuando es ejecutada detiene el bucle, pero no continua con el programa, sino que vuelve a comenzar el bucle desde el principio.

1
2
3
4
5
6
7
8
9
10
11
<?
$var=1;
while(1) {
     print($var);
     $var++;
     if($var<10) {
          continue;
     }
     break;
}
?>

Aquí tenemos otra forma aún más surrealista de expresar los ejemplos anteriores; por cada vuelta, si $var sigue siendo menor que 10, el bucle comienza desde el principio; cuando deje de ser menor que 10, el bucle seguirá y se ejecutará break, y el bucle se interrumpirá. También puede sernos útil en alguna ocasión.

Aunque no lo parezca, con el capítulo anterior y este ya se pueden hacer multitud de programas, aunque la verdad no muy útiles; las expresiones, las variables y las sentencias de control son los pilares base de todo PHP. Su uso combinado con las funciones y la entrada de datos por medio de formularios nos permitirán hacer todo lo que se nos ocurra.

Resumen

  • Las expresiones son trozos de código que devuelven un valor, que puede ser true (distinto de 0) o false (igual a 0, o bien nulo).

  • Las sentencias de control nos permiten controlar cómo funcionará el programa en base al resultado de expresiones.

  • Las sentencias condicionales if se ejecutan si una expresión devuelve true; switch toma una expresión y ejecuta una cosa u otra según lo que devuelva.

  • Los bucles while se ejecutan mientras una expresión sea verdadera; los bucles do... while se ejecutan al menos una vez; for es una forma compleka de bucle en la que se declara, compara y opera una variable.

  • La sentencia break interrumpe el bucle y sigue con el programa; continue vuelve al inicio del bucle.

Próximo capítulo: Funciones

NOTA: esta es una traducción (bastante imperfecta) del artículo Linus Torvalds: A Very Brief and Completely Unauthorized Biography del Linux Information Project.

Linus Torvalds es el programador informático más famoso del mundo, además del más famoso finés. Es el fundador y coordinador de Linux, el sistema operativo tipo Unix que está empezando a revolucionar la industria de la informática, y posiblemente, también mucho más. La suya es, realmente, una de las grandes historias de la historia de los ordenadores.

Sigue leyendo

Variables

Ya vimos algo de las variables en el capítulo anterior. Las variables son huecos de memoria a los que aisgnan un nombre (identificador) y que pueden contener valores. Puede compararse con unas taquillas de estas de los colegios de las películas, que se reconocen por el nombre del alumno al que pertenecen y donde el alumno guarda sus cosas.

Características de las variables en PHP

  • Todos los nombres de variables empiezan por $, como en Perl.
  • Sus nombres pueden contener caracteres alfabéticos (incluídos tildes, diéresis, etc.), numéricos (estos últimos no al principio) y rayas bajas (_). Son case-sensitive, es decir, distinguen entre mayúsculas y minúsculas ($Casa no es lo mismo que $casa).
  • Pueden contener números enteros, decimales, cadenas de caracteres y cosas más avanzadas (ver siguiente apartado más abajo).
  • Para los que vengan de C & Cía., las variables no necesitan ser declaradas. PHP es un lenguaje no tipado, es decir, no hace falta especificar el tipo de variable.

Tipos de variables

Existen tres tipos básicos de variables en PHP:

  • Enteros: almacenan números enteros, es decir, sin decimales. Sus valores se escriben sin comillas. En C, se corresponderían con el tipo int.

    <?
    $entero=1;
    $entero=245;
    $entero=-1124;
    ?>
  • Decimales: almacenan números decimales. El separador de decimales es el punto, no la coma. Sus valores, al igual que los enteros, se ponen sin comillas, aunque deben tener la parte decimal especificada. En C, se corresponden con el tipo double (no existe el float en PHP).

    <?
    $decimal=1.2;
    // $decimal=1,2; (Incorrecto, el separador es el punto.)
    $decimal=1.0; // No es igual que $decimal=1, porque con .0 se almacena como decimal y sin .0, como entero.
    ?>
  • Cadenas: almacenan cadenas de caracteres, como palabras, frases o lo que sea. Se escriben entre comillas dobles. En C, se correspondería con los arrays de char.

    <?
    $cadena="Aiya Arda";
    ?>

Hay otros tipos más avanzados de variables, como los arrays o las instancias de clases, pero ya los veremos en capítulos venideros.

Operadores

Los operadores son signos que, bueno, operan con expresiones y variables. Veamos los principales, y los más usados.

Aritméticos

Son + (suma), - (resta), * (multiplicación), / (división) y % (resto de una división entre enteros). Simplemente operan con dos valores, uno a la izquierda y otro a la derecha.

<?
$var=1+1;
print($var); // Imprime 2
print($var+1); // Imprime 3
print(5%2); // Imprime 1 (resto)
?>

Concatenación

¿Has oído alguna vez el típico chiste de 2+3=23? Pues precisamente eso hace el operador de concatenación: unir dos cadenas. Se representa con un punto . .

<?
$cadena1="Aiya";
$cadena2="Arda";
print($cadena1.$cadena2); // Imprime AiyaArda
print($cadena1." ".$cadena2); // Imprime Aiya Arda
?>

Asignación

Lo que hacen es asignar valores a una variable. Hemos visto el más básico de ellos, =, que simplemente asigna el valor de la derecha del signo a la variable de la izquierda.

<?
$var1=1;
$var2=2;
$var2=$var1; // $var2 coge el valor de $var1, no al revés
?>

Ahora bien, la combinación de = con los operadores aritméticos y el de concatenación da lugar a asignadores más complejos. Tienen la forma operador= (por ejemplo, += o -=). Asigna a la variable de la izquierda, el valor de la derecha operado con la variable misma. Lo veremos mejor con un ejemplo:

%lt;?
$var=2;
$var=$var+2; // Suma 2 al valor de la variable
$var+=2; // Hace lo mismo que lo anterior
 
$var="Aiya";
$var=$var." Arda";
$var.=" Arda";
?>

Incremento/decremento

Son ++ (incremento) y (decremento). Aumentan o decrementan en 1 el valor de una variable. Si se ponen antes de la variable, primero opera y después la procesa; si se pone después, primero la procesa y después opera. Lo veremos con un ejemplo:

<?
$var=1;
print($var++); // Imprime 1, y después increnta $var
// En este punto $var es igual a 2
print(++$var); // Incrementa $var en 1 (vale 3), y después lo imprime
?>

De comparación

Simplemente comparan dos expresiones, y si la condición es verdadera, devuelve true (esto lo explicaremos con más detalle en el próximo capítulo).

Son == (es igual), > (es mayor que), < (es menor que), >= (es mayor o igual que), &gt=; (es menor o igual que), != (no es igual). Ojo, no confundir == con =, es un error muy común y que da muchos quebraderos de cabeza, porque generalmente no provocan error al ejecutar el programa. = es de asignación, == de comparación.

Para ver los ejemplos, adelantaré que if es una sentencia condicional, y si la condición es verdadera, ejecuta lo que tiene dentro.

<?
$var1=1;
$var2=2;
 
if($var1==1) {
     print("Son iguales");
}
 
if($var1==$var2) { // No es cierto
     print("Son iguales"); // Esto no se imprimirá
}
 
if($var1<$var2) { // $var1 es menor que $var2
     print("Son iguales");
}
 
if($var1=$var2) { // Vemos que hemos puesto =, de asignación, luego $var1 valdrá como $var2
     print("Son iguales"); // Y esto se imprimirá
}
?>

Hay otros tipos de comparadores, como los lógicos y los de bits, pero prefiero verlos en capítulos próximos.

Resumen

  • Las variables almacenan valores, ya sean enteros, decimales o cadenas.

  • Las variables se identifican por nombres clave que empiezan por $.

  • Los operadores son signos que operan con expresiones y variables.

  • Los operadores aritméticos operan aritméticamente (suma, resta, etc.) y son +, -, *, / y %.

  • El operador de concatenación une cadenas y es un punto (.).

  • Los operadores de asignación dan valores a variables, y se pueden combinar con los aritméticos y el concatenador. Son =, +=, -=, *=, /=, %= y .=.

  • Los operadores de comparación comparan expresiones y son ==, <, > <=, >=, !=.

Próximo capítulo: Sentencias

Primer programa en PHP

Para crear archivos PHP necesitamos el editor. Al igual que con HTML y CSS, el código se guarda en archivos con una extensión estándar que indique que es PHP. En el caso de PHP, sería .php. Además, para que se pueda ejecutar hay que guardarlo en la carpeta del servidor. En Linux suele ser /var/www, en Mac, /User/usuario/Sites, y en Windows, C:/AppServ/www.

1
2
3
4
5
<?
// Primer programa en PHP
 
print("<p>Aiya Arda!</p>");
?>

Comentemos línea por línea:

  • 1: Este símbolo, , indica que ahí empieza código PHP. Todo lo que esté entre es código PHP; lo que esté fuera, el navegador lo interpreta como HTML. Por supuesto, podemos crear varios bloques de código en un mismo archivo.

  • 2: Las líneas que comienzan por // son comentarios, es decir, notas que ponemos para dejar más claro lo que hace el código, dejarnos recordatorios, o lo que queramos. No tienen efecto sobre el programa.

  • 4: Eso de ahí es una función, en este caso print, que lo que hace es mostrar HTML en el documento. Quedémonos por ahora con que las funciones son como comandos que nos permiten hacer cosas especiales, pero ya veremos mejor en próximos capítulos.

  • 5: ?>, como ya hemos dicho antes, cierra el bloque de código PHP.

Si ejecutáramos este programa, obtendríamos esto:

Aiya Arda!

Lo que no tiene utilidad alguna, y además podría haberse obtenido con sólo HTML :P.

Veamos otro ejemplo:

1
2
3
4
<?
$aiya="<p>Aiya Arda!</p>";
print($aiya);
?>

En la línea 2 vemos un nuevo elemento: la variable. Las variables son como objetos que contienen valores, ya sean numéricos, de cadena de caracteres (una palabra, una frase, etc.), o de otros muchos tipos: matrices, instancias, conexiones a bases de datos, etc., que veremos en próximos capítulos.

En este programa, a la variable $aiya le asignamos el valor “<p>Aiya Arda!</p>”, y luego imprimimos con print() el contenido de la variable. Hace exactamente lo mismo que el programa anterior :P.

Alguno se preguntará para qué sirven las variables, que si no sería lo mismo poner el contenido de la variable directamente, en este caso “<p>Aiya Arda!</p>”. Bueno, ya veremos algunas aplicaciones más útiles, pero por ahora quédate con el concepto.

Imaginemos que quisiéramos mostrar diez veces el famoso “<p>Aiya Arda!</p>”:

1
2
3
4
5
6
7
8
9
10
11
12
<?
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
print("<p>Aiya Arda!</p>");
?>

Pues vaya rollo, ¿no? Pero podemos recurrir a una de las herramientas principales de la programación: el bucle.

1
2
3
4
5
<?
for($i=0;$i<10;$i++) {
          print("<p>Aiya Arda!</p>");
}
?>

Esto habría repetido Aiya Arda! diez veces. Veamos cómo funciona:

  • 2: lo que tenemos ahí es un bucle for. En primer lugar, vemos una variable, $i, que vale inicialmente 0. Luego vemos $i>10, lo que significa “$i es menor que 10″. Mientras esto sea cierto, se ejecutará el bucle. Y luego vemos $i++, que significa que, por cada vez que se ejecute el bucle, se incrementará en 1 el valor de la variable $i. Como siempre, ya veremos todo esto con más detalle ;).

Resumen

  • Los archivos de código PHP se guardan en la carpeta de servidor con la extensión .php.

  • El código PHP se pone entre .

  • Las líneas que comienzan por // son comentarios.

  • Las variables son objetos que contienen muchas clases de valores.

  • Los bucles permiten repetir una serie de operaciones mientras se cumpla una condición.

  • Las funciones son una especie de comandos que permiten hacer operaciones especiales o repetitivas.

Bueno, este es el capítulo previo al curso de PHP de verdad. Explicaremos un poco de qué va PHP y qué necesitaremos para ponernos con él.

PHP

Todos hemos visto alguna vez alguna página que termina en .php o donde pone en un cartelito phpBB, phpNuke, etc. PHP es un lenguaje de programación, bastante diferente al HTML. Se utiliza principalmente para crear páginas web dinámicas, es decir, que no se limita simplemente a mostrar contenido fijo en pantalla, como el HTML, sino que el contenido de la página cambia según la programemos. Esto permite crear programas como foros, blogs, encuestas, etc. En el aspecto técnico, es un lenguaje de guiones, es decir, interpretado, y su intérprete es el motor Zend. En su versión más reciente (PHP 5) está orientado a objetos, además del paradigma estructural. (Si no entiendes nada de esto, no te preocupes, es para los que tienen experiencia en otros lenguajes de programación :P). Por último, es gratis y libre, no como otros :).

Requisitos previos para empezar con PHP

El primer requisito sería tener ordenador y saber usarlo, ya sea Linux, Mac, Windows o lo que tengas. También hace falta conexión a internet y un navegador (preferiblemente decente). También necesitas un editor de texto plano. Para Linux, mi preferido es Quanta, pero sirve cualquiera. Para Windows, puedes usar el mismo Bloc de Notas, pero es preferible usar programas dedicados a ello, como UltraEdit, o SciTE, que es libre.

Instalación del servidor Apache, MySQL y PHP

La instalación de PHP difiere según sistemas:

Linux

Si usas Debian, Ubuntu o derivadas, sólo tienes que instalar los siguientes paquetes desde apt o desde Synaptic, Adept o lo que tengas:

  • apache2

  • libapache2-mod-php5

  • mysql-common

  • mysql-client

  • mysql-admin

  • php5

  • php5-mysql

  • php5-common

  • phpmyadmin

Si te gusta copiapegar en consola: sudo apt-get install apache2 libapache2-mod-php5 mysql-common mysql-client mysql-admin php5 php5-mysql php5-common phpmyadmin

Si usas distros con RPM, trata de buscar los mismos paquetes, o similares, en formato RPM. Si eres aventurero y usas otro tipo de distros sin paquetes, pues tú sabrás :).

Mac

Con el sistema (al menos con Tiger) viene incluído un servidor Apache 1.3 y PHP 4, pero nosotros vamos a usar PHP 5, además de instalar MySQL:

  1. Ve aquí, bájate el paquete donde ponga PHP 5.2.1 for Apache 1.3 e instálalo.

  2. Ve aquí, busca el paquete que encaje con tu Mac (generalmente Mac OS X 10.4 (PowerPC, 64-bit), o bien (x86) si el tuyo es de los Core Duo), descárgalo e instálalo.

  3. Ahora, nos vamos a la Terminal (Finder > Aplicaciones > Utilidades > Terminal) y ponemos touch .profile (pulsamos intro) y nano .profile (volvemos a pulsar intro). Ahí, escribimos esto: PATH=”/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin”. Pulsamos Control+X, pulsamos Y cuando nos pregunte si guardar cambios, y pulsamos intro cuando nos pregunte el nombre de fichero.

  4. Ahora tenemos que reniciar el ordenador. Una vez cargado, volvemos a la Terminal y ponemos mysql_secure_installation. Nos saldrá esto (pongo en negrita las respuestas):

    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
    In order to log into MySQL to secure it, we’ll need the current password for the root user. If you’ve just installed MySQL, and you haven’t set the root password yet, the password will be blank, so you should just press enter here.
    Enter current password for root (enter for none): [pulsamos enter]
    OK, successfully used password, moving on…

    Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation.
    Set root password? [Y/n] y
    New password: [nuestra contraseña]
    Re-enter new password: [la repetimos]
    Password updated successfully!
    Reloading privilege tables..
    … Success!
    By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
    Remove anonymous users? [Y/n] y
    … Success!
    Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network.
    Disallow root login remotely? [Y/n] y
    … Success!
    By default, MySQL comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
    Remove test database and access to it? [Y/n] y
    - Dropping test database…
    … Success!
    - Removing privileges on test database…
    … Success!

    Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
    Reload privilege tables now? [Y/n] y
    … Success!
    Cleaning up…
    All done! If you’ve completed all of the above steps, your MySQL
    installation should now be secure.
    Thanks for using MySQL!

    (Copiado descaradamente de eScriptorium).

  5. Último paso: en la Terminal, ponemos mysql -u root –p, y después:

    mysql> SET PASSWORD FOR
    -> ‘root’@'localhost’ = OLD_PASSWORD(’la contraseña que elegiste’);
    Query OK, 0 rows affected (0.00 sec)
    mysql> quit
    Bye

    Date cuen de sustituir la contraseña que elegimos por la contraseña que elegiste :P.

Windows

Aquí es facilito, vamos a XAMPP, bajamos e instalamos :P.

Algunos datos de interés

Para acceder a tu servidor, sólo tienes que poner http://localhost en tu navegador. Es como si fuese una página web normal.

Algunos programas están diseñados exclusivamente para PHP 4, y no funcionarán con PHP 5. Si se da el caso, puedes probar a instalar conjuntamente PHP 4. Yo no tengo experiencia, así que tendrás que buscarte la vida. De todas formas, este es un curso de programación, no de instalación :P.

Bien, con todo esto, unido a muchas ganas de aprender, paciencia y perseverancia (creo que nunca había usado esa palabra), creo que estás listo para empezar :P.

Logo de PHP

Pues eso, he decidido que para darle vidilla al blog, hacer algo útil y, cómo no, ganar unos cuantos egopuntos, voy a ponerme a hacer un curso de PHP desde 0. Es típico que la gente que tiene algunos conocimientos de diseño web (HTML, CSS) quiera ir un poco más allá y ponerse con PHP, pero no he visto ningún curso realmente indicado para gente que no tiene ni idea de programación ni de ná.

Bueno, ya sabéis, si tenéis alguna sugerencia, algo que queráis que entre, que no entre, pues decídmelo :P.

Próximamente: 0. Requisitos previos para empezar con PHP.

Ego

  • Nombre: Shock Harad
  • Edad: 15 16 17 años
  • Profesión: Estudiante de 4º de ESO 2º de Bachillerato
  • Ubicación: Málaga, Andalucía, España, Tierra, Sistema Solar, Vía Láctea. [...]

Acerca de

[...] Generalmente se hablará de Linux/informática, proyectos propios, alguna reseña de lo que sea... pero, en realidad, cualquier frikada tiene cabida aquí. [...]

Gaticos y monetes

Baúl

Mésenyah Getalc

Tuitis

  • Mi deporte preferido de las noches veraniegas es creer que la sombra de la cadenilla de la lámpara del techo es una cucaracha.
  • @SeoWelsh ¡Hasta enero! Puedo pasarme el cuatrimestre de sarao en sarao =D
  • @Dreamslave En un agujero en el suelo vivía un Harad.
  • [...]

Hamijos

Bla bla bla

  • RSS
  • Egómetro
  • XHTML 1.0 Strict válido
  • CSS válido
  • Hecho en Linux
  • Licencia Creative Commons
  • Uso Konqueror
  • Anda con WordPress
  • RES