Corso base di Php - Lezione 1

La prima lezione del corso per l'apprendimento del linguaggio di scripting Php. L'ambiente di sviluppo, il nostro primo programma in Php, le variabili.



[ZEUS News - www.zeusnews.it - 30-07-2008]

Con questo articolo iniziamo una serie di lezioni su Php, che si evolveranno in un vero e proprio corso per imparare questo linguaggio. In questo corso tratteremo quindi i concetti base di Php.

Un po' più avanti daremo il via a un secondo corso, con lezioni di livello più avanzato. Il lettore che arriverà alla fine del corso base sarà in grado di iniziare quello avanzato.

I corsi saranno quasi paralleli, in modo che chi già conosce la sintassi base e i concetti più semplici della programmazione in Php potrà subito smanettare con cose più complicate.

Ovviamente invitiamo tutti i lettori a partecipare nell'apposito forum: potrete interagire subito e direttamente con tutti i partecipanti, in modo da chiedere eventuali chiarimenti e fare critiche costruttive.

Il corso base inizia con un'introduzione su Php e sulla configurazione dell'ambiente di sviluppo, piattaforma, editor e via dicendo; passeremo poi alle lezioni vere e proprie sul linguaggio.

Una nota importante: la versione di Php utilizzata è la 5.x. Alcune cose (ma non tutte) del corso avanzato e molte di quello base potranno essere portate su php 4.x senza modificare nulla. Sebbene in giro ci siano ancora server con Php 4.x, questa versione tra un po' non sarà più mantenuta e tra un po' uscirà la 6.0: la nostra opinione è che ogni tanto bisogna smettere di guardare indietro.

Due parole su Php

Php sta per Hypertext Prepocessor: è un linguaggio di programmazione che supporta l'Oop (Object Oriented Programming) creato nel 1994 da Rasmus Lerdorf. Lo scopo era di creare pagine web dinamiche, ma oggi Php è talmente evoluto che è possibile utilizzarlo anche al di fuori del web; in questa sede tratteremo solo l'aspetto primario: vedremo come creare pagine web dinamiche.

Uno dei vantaggi di Php rispetto ad altre tecnologie è di essere multipiattaforma: il server su cui gira può essere Windows, Linux, Mac e molto altro.

Abbiamo tirato subito in ballo il termine server: Php è infatti un linguaggio di scripting lato server, per cui termini come server e webserver saranno all'ordine del giorno.

L'accesso a una pagina web statica in rete funziona (in soldoni, non è proprio così semplice) nel modo seguente:
1) L'utente digita nel browser l'indirizzo della pagina
2) Se la pagina esiste, il webserver (Apache, IIS, Mamba e via dicendo) la prende e la "manda al browser", così come la trova.

L'accesso a una pagina dinamica (sempre in soldoni) ha un passaggio in più:
1. L'utente digita nel browser l'indirizzo della pagina
2. Se la pagina esiste, il webserver "capisce" che la pagina deve essere "trattata" in qualche modo e la passa all'interprete corretto (nel nostro caso Php). 3. Alla fine del "preprocessing" il risultato viene inviato al browser.

Il webserver che utilizzeremo nel corso è Apache 2.

Php è definito Html embedded, ossia è possibile scrivere pagine con codice Php e Html insieme: data questa caratteristica, dovremo cercare di essere più ordinati possibile per non creare codice confusionario.

Dopo questa doverosa premessa, vediamo insieme come installare e configurare l'ambiente di sviluppo.

L'ambiente di sviluppo

Prima di tutto dobbiamo procurarci due software fondamentali: il webserver e Php. Le possibilità di installazione sono varie ma per non perdere tempo consigliamo di utilizzare le seguenti: 1) Xampp lite (su macchine Windows, Mac e Linux) anche se su Linux sarebbe preferibile installare i pacchetti delle distribuzioni o compilare; 2) Mamp (su macchine Mac).

Notate che Mamp e Xampp installano molte cose tra cui MySql che nel corso base non tratteremo ma che verrà discusso nel corso avanzato; a dire il vero non nutriamo molta simpatia in Xampp e in Mamp ma l'installazione di un binario precompilato è molto semplice, adatta quindi agli utenti alle prime armi. Se invece volete perdere un po' più di tempo e configurare a dovere l'ambiente potete scaricare Apache e Php. Se invece avete scelto Xampp o Mamp, nella directory di installazione ci sarà una cartella denominata Htdocs che conterrà le directory dei vostri lavori.

Fondamentale è la scelta dell'editor. Alcuni editor che ci sentiamo di consigliare sono Notepad++ (per Windows) e Smultron (per Mac). Per Linux consigliamo Kate in ambiente Kde e Scite con Gnome: li potete scaricare con i gestori dei pacchetti.

Sono tutti editor open source che evidenziano la sintassi di vari linguaggi tra cui Php; volutamente non abbiamo parlato di ambienti super-mega-iper-cazzuti come Eclipse, Dreamweaver, Quanta+, PhpProject e via dicendo, perché non ci sembra il caso di utilizzare in questa sede software così pesanti (anche se per la cronaca l'autore di questo corso utilizza Eclipse su tutte le piattaforme con le estensioni PDT). Valutate voi con cosa vi trovate meglio, tenendo conto che qui scriveremo tutto "a manina" senza usare editor visuali. Sul forum c'è inoltre un thread che tratta a fondo l'argomento.

Sempre a proposito di forum: prima di iniziare a giocare con il codice, vi invitiamo a partecipare al corso, a fare critiche costruttive. Chiedete e soprattutto rispondete se conoscete la risposta, così potrete aiutare altri lettori.

Il primo programma

Prima di tutto nella directory htdocs (o in una sua equivalente) create la cartella primo e dentro create il file index.php con le seguenti righe di codice:

<html>
   <head>
      <title>Primo programma</title>
   </head>
   <body>
      Ciao a tutti!
   </body>
</html>

Assicuratevi che Apache sia in esecuzione: se usate Xampp, tramite Xampp-control dovrete cliccare sul bottone Start accanto alla scritta Apache. Aprite un browser e digitate la seguente Url: http://localhost/primo/index.php

Dovreste ottenere una pagina bianca con scritto "Ciao a tutti!" e con titolo "Primo programma".

Anche se la pagina ha estensione .php, di fatto il codice inserito è solo Html. Quindi, anche se Apache ha eseguito Php sulla pagina, questo non ha fatto nulla.

Modifichiamo il precedente script con il seguente:

<html>
   <head>
      <title>Primo programma</title>
   </head>
   <body>
      Ciao a tutti! La data di oggi è <?php print date('d-m-Y'); ?>
      e sono le ore <?php print date('H:i'); ?>
   </body>
</html>

Che cosa è successo? Dato che la pagina ha estensione .php, Apache la fa processare a Php: questo interpreta il codice compreso tra i tag <?php e ?>. Potete anche utilizzare <? al posto di <?php, più breve.

Nel nostro script abbiamo fatto uso di due funzioni che Php mette a disposione: print e date: la prima si limita a scrivere del testo che gli viene passato come argomento e la seconda invece stampa la data del giorno secondo il formato passatogli come stringa (nel nostro caso "d-m-Y" e "H:i"). In realtà date(...) è più potente ma per ora sorvoliamo.

Un altro appunto: print in realtà è un'istruzione e non una funzione (mancano le tonde) ma anche qui lasciamo perdere (per ora!) per non complicarci troppo la vita.

Dopo le chiamate a date(...) vedete un ";": è il delimitatore di fine istruzione; Php, come molti altri linguaggi, prevede un delimitatore che dice all'interprete: "Qui finisce l'istruzione". Il codice precedente è del tutto equivalente a quello qui sotto:

<html>
   <head>
      <title>Primo programma</title>
   </head>
   <body>
      Ciao a tutti! La data di oggi è
      <?php
         print
         date('d-m-Y'); ?> e sono
         le ore
               <?php print
               date('H:i'); ?>
   </body>
</html>
solo che quest'ultimo è meno leggibile. Cercate di non cadere in questo errore.

Tenete presente che Php deve produrre codice Html, Xhtml, Xml o qualunque altro standard in modo corretto: se volete che Php crei una tabella Html dovrete far sì che vengano stampati i tag <table> e </table> nei punti giusti.

Una cosa importante quando si programma sono i commenti: essi di fatto sono del testo che l'interprete o il compilatore ignora, ma servono ai programmatori per scrivere note su quello che il programma fa. In Php i commenti sono come quelli del C++: tramite "//" possiamo commentare su una riga mentre tramite "/*...*/" su più righe.

Le variabili

E' giunto il momento di trattare il concetto di variabile. Una variabile di fatto è una locazione di memoria, caratterizzata da un nome, avente una certa "dimensione". Immaginate una variabile come se fosse una scatola con scritto sopra un nome; la scatola può contenere oggetti dello stesso tipo (uno per volta), oggetti che hanno una grandezza minima e una massima prefissata.

Questa definizione, in realtà, va bene nel caso stessimo parlando di un linguaggio di programmazione "tipizzato" come il C, il C++, il Java e via dicendo. Questi linguaggi però prevedono che una variabile venga definita prima di essere utilizzata, e nella definizione della stessa deve essere esplicitato il tipo di variabile Php invece non necessata la definizione a priori di una variabile. Con Php possiamo inizializzare una variabile a un certo valore, per esempio 5, senza averla dichiarata prima; in seguito possiamo mettere nella stessa variabile la stringa "pippo" e in futuro utilizzarla addirittura come vettore.

Dopo questa premessa, iniziamo. Prima di tutto vediamo come si fa a creare una variabile:
1) Dobbiamo darle un nome;
2) Dobbiamo assegnarle un valore.
Ecco un esempio di dichiarazione e assegnazione:

$pippo=0;

Nella scelta del nome di una variabile ci sono alcune regole da seguire:
1) il nome deve iniziare con $;
2) il secondo carattere deve essere una lettera o il carattere underscore "_"; 3) dal terzo carattere in poi possiamo usare lettere, numeri e underscore a piacere, senza limite.

Tenete conto che una variabile dal nome molto lungo, come questa,

$questavariabileContiene_il_NUMERO_dianni_dellAmicoGianni=98;

non è molto comoda da usare e potrebbe portarvi a un tunnel carpale precoce. Tenete presente che Php è case-sensitive: $pippo=5; e $PIpPo=5; sono due variabili differenti.

L'assegnazione del valore è una conseguenza del fatto che Php non prevede la dichiarazione: se vogliamo definire una variabile dobbiamo inizializzarla subito a qualche valore. Possiamo anche definire una variabile inizializzandola con un valore proveniente da un'altra variabile, come per esempio:

// $pippo conterrà il valore 5 e $pluto il valore 10
$pippo=5;
$pluto=$pippo*2;

Bisogna prestare molta attenzione nell'utilizzo delle variabili: dato che non abbiamo la possibilità di definire una variabile senza usarla, potremmo in due punti del programma definire per sbaglio la stessa variabile due volte, e questo potrebbe generare un bug difficile da risolvere.

Infine un'ultima nota. Esistono linguaggi "a tipizzazione forte" e linguaggi "a tipizzazione debole". I primi prevedono che le veriabili vengano definite, e che in questa fase venga definito il tipo: tentare di modificare una variabile appartenente a un tipo con dati di altro genere provocherebbe un errore di computazione, oppure un risultato scorretto.

Php invece rientra nel secondo tipo: possiamo gestire insieme variabili di tipi diversi, ma possiamo anche forzare per un breve periodo una variabile di un tipo a esserlo di un altro; possiamo in ogni momento recuperare il tipo di dato che la variabile contiene in quel dato istante. Queste caratteristiche permettono di scrivere codice in maniera semplice ma di contro potremmo produrre bug difficili da risolvere.

Nella prossima lezione tratteremo in modo più esaustivo le variabili, vedremo i tipi di dati che Php può gestire, il modo in cui lo fa e tanto altro.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con Zeus News ti consigliamo di iscriverti alla Newsletter gratuita. Inoltre puoi consigliare l'articolo utilizzando uno dei pulsanti qui sotto, inserire un commento (anche anonimo) o segnalare un refuso.
© RIPRODUZIONE RISERVATA

Commenti all'articolo (ultimi 5 di 10)

Ciao, pure io ultimamente non guardo molto i post perchè tra il lavoro fino a pochi giorni fa e tra le ferie ora, faccio un po' lo scappato di casa... Io non volevo mettermi sulla difensiva anche perchè come hai detto non mi hai squartato... Io non uso php per far vedere gli ip, io ci mando avanti cose complesse, anche le gare alle... Leggi tutto
20-8-2008 01:33

non ti mettere sulla difensiva per cortesia, non ti ho squartato come un capretto...:lol: poi per me non ci sono problemi di sorta, io certe cose le so, era per chi non le sapeva che le ho scritto. Leggi tutto
15-8-2008 14:59

{enzo}
Esempi, esempi,... Leggi tutto
4-8-2008 23:03

{ken}
:) Leggi tutto
1-8-2008 03:22

Infatti non ho detto che solo php prevede questa cosa ma di fatto ho scritto che php rientra nei linguaggi con questa carateristica. Poi sul fatto che se uso "x" come contatore è giusto che in quella pagina "x" resti un contatore per evitare confusione ma come ho fatto notare prima php permette queste cose e io lo... Leggi tutto
31-7-2008 20:15

La liberta' di parola e' un diritto inviolabile, ma nei forum di Zeus News vige un regolamento che impone delle restrizioni e che l'utente e' tenuto a rispettare. I moderatori si riservano il diritto di cancellare o modificare i commenti inseriti dagli utenti, senza dover fornire giustificazione alcuna. Gli utenti non registrati al forum inoltre sono sottoposti a moderazione preventiva. La responsabilita' dei commenti ricade esclusivamente sui rispettivi autori. I principali consigli: rimani sempre in argomento; evita commenti offensivi, volgari, violenti o che inneggiano all'illegalita'; non inserire dati personali, link inutili o spam in generale.
E' VIETATA la riproduzione dei testi e delle immagini senza l'espressa autorizzazione scritta di Zeus News. Tutti i marchi e i marchi registrati citati sono di proprietà delle rispettive società. Informativa sulla privacy. I tuoi suggerimenti sono di vitale importanza per Zeus News. Contatta la redazione e contribuisci anche tu a migliorare il sito: pubblicheremo sui forum le lettere piu' interessanti.
Sondaggio
Confessa. Hai mai acquistato un farmaco online?
Assolutamente no, è un reato.
Fossi matto! E' un rischio per la salute.
Non si dovrebbe... ma lo ammetto, qualche volta è successo.
Lo faccio abitualmente anche se è contro la legge o pericoloso.

Mostra i risultati (3531 voti)
Novembre 2019
Windows 10, iniziano gli aggiornamenti forzati
Facebook attiva di nascosto la fotocamera dell'iPhone
Apple, deciso in una riunione segreta il dispositivo che sostituirà l'iPhone
Bug in Firefox, truffatori già all'opera
Quattordicenne risolve il problema dei punti ciechi nelle auto
Ottobre 2019
Il grande database della cacca cerca volontari
Google, i domini .new diventano scorciatoie
Wind Tre, con l'anno nuovo aumentano le bollette
Omessa custodia del cellulare, sanzionata l'insegnante del post anti-Arma
Smartphone e batteria, con la modalità scura si risparmia davvero
Il Galaxy S10 si sblocca con qualsiasi impronta
Windows 7 a fine vita, Microsoft importuna coi pop-up
Linux, seria falla nel comando sudo
Il sistema operativo per sopravvivere all'Apocalisse
Pegasus, la nuova interfaccia di Windows 10
Tutti gli Arretrati


web metrics