0. Les notions de base a bien comprendre :
La visibilité des variables :
Comme dans tout langage les variables ont un contexte, en PhP on peu les réduire simplement à 4 portéesdifférentes :
Je suis dans une fonction => Je suis disponible que dans cette fonction
Je suis une globale => Je suis disponible partout
Je suis une propriété de classe => Je suis disponible en fonction de mon type de déclaration :
private => Que dans la classe
protected => Dans la classe et dans ses enfants
public => Directement depuis une instance de la classe
Le scope => Un scope est un contexte d'exécution et plus particulièrement de visibilite des variables et des fonctions.
C'est une notion complexe aussi je vous laisse lire ceci pour mieux la comprendre :
http://www.projectperfect.com.au/info_define_the_scope.php
Les designs patterns => Ce sont des méthodes de programmation purement logique pour répondre a un problème donne.
Il faut les connaitre, il faut savoir que ca existe et il faut se renseigner dessus.
1. L'operateur ::, la résolution de portée :
Si vous voulez utiliser des fonctions ou des variables statiques il sera obligatoire et pour plus d'explications :
http://php.net/manual/fr/language.oop5.paamayim-nekudotayim.php
2. Les mots clef méconnus ou peu utilises :
const et la fonction define :
Ces deux mots clefs vous permettrons de déclarer les variables dont vous pouvez avoir besoin partout dans votre code.
Notez que avec le mot clef const vous pourrezdéfinir des variables complexes comme des objets ce que vous
ne pourrez pas faire avec define qui se contente des type simples.
Pour plus d'informations : http://stackoverflow.com/questions/2447791/define-vs-const
global :
Un mot clef vraiment utile, soit le code suivant :
$a = 10;
function toto()
{
global $a; # Ici $a vaudra 10
}
Le fait de mettre global devant la variable $a va préciser agir comme le mot clef extern en c, c'est a
dire que PhP va regarder si une variable de ce nom a étédéclaré quelque part dans votre code et si elle existe
ce sera celle la qui sera utilisée.
static :
Souvent mal compris ce mot clef est très utile.
Il va vous permettre de déclarer des variables ou des fonctions dites statiques et cela implique que vous
n'aurez pas a instancier un objet pour y accéder !
Souvent il est plus intéressant de faire une fonction statique ou déclarer une variable statique et des fois ca
sera même indispensable notamment si vous comptez par exemple implémenter un Singleton (la je vous laisse découvrir les
design pattern).
Ce que vous devez retenir c'est que pour accéder a une fonction ou une variable statique vous devrez utiliser
l'operateur ::
self :
Le mot-clef self permet d'utiliser une méthode ou une propriété de la classe elle-même.
parent :
La c'est la notion de l'héritage qui est en jeu et la je vous conseille de lire ceci :
http://php.net/manual/fr/keyword.extends.php
A vous de comprendre la notion d'héritage ce n'est plus du PhP mais de la programmation oriente objet.
3. Les constantes dynamiques :
__CLASS__ :
Dans une classe ce mot clef vaut le nom de la classe ou on se trouve.
Exemple :
class maClasse
{
public function __construct()
{
echo __CLASS__; # Affichera "maClasse"
}
}
__FUNCTION__ :
Dans une fonction ce mot clef vaut le nom de la fonction ou on se trouve.
Exemple :
function maFonction()
{
echo __FUNCTION__; # Affichera "maFonction"
}
__FILE__ :
Nom du fichier ou cette constante est utilisée.
4. Les raccourcis :
++ : Incrémentation de la variable de 1 selon son type
-- : Décrémentation de la variable de 1 selon son type
+=, -=, *=, /= : les opérations de bases appliques directement du cote gauche
exemple : $var a = 10; $a *= 10 donnera 100;
5. L'operateur & devant une variable :
Plutot qu'une longue explication un exemple sera plus parlant,
function a(¶m)
{
param / 2;
}
$b = 10;
a($b); # La fonction a reçu la variable par référence et non par copie, son contenu est directement modifie par la fonction !
$b vaut 5 après l'appel.
6. Le $$ :
Non non ce n'est pas un barbarisme mais une beauté du langageinterprété :)
Nous savons tous que une variable se déclare de la manière suivante en PhP : $nom_de_ma_variable.
Maintenant un cas pratique : soit une variable $var = 'toto';
En utilisant $ devant une variable contenant une chaine PhP va tout simplement agir comme suit et ce
grâce a la priorité des operateurs (chaque operateur a une priorité d'interprétation lorsque les code est analysé).
$var => contient la chaine 'toto'
$ => ce qui suit est une variable
Conclusion : $$var = que contient la variable de nom $var soit que contient la variable $toto !
Utilité : Cree du code générique principalement, grâce a ce mécanisme on va pouvoir faire de jolie chose
en évaluant le contenu de variable dynamiquement !
6. Les structures conditionnelles :
Le foreach :
Vraiment TRES utile ! Je ne vais pas trop m'étendre dessus mais c'est comme un for mais en mieux :)
Exemples :
$arr = array(1, 2, 3);
foreach ($arr as $value)
{
echo $value;
}
Ceci affichera : 123
foreach ($arr as $index => $value)
{
echo $index.':'.$value;
}
Ceci affichera : 011223 et pour plus de précision :
$arr = array
(
'clef1' => 1,
'clef2' => 2,
'clef3' => 3
);
foreach ($arr as $index => $value)
{
echo $index.':'.$value;
}
Ceci affichera : clef1:1clef2:2clef3:3
Je pense que c'est assez clair ^^
Pour finir du cote des structures utiles je vous conseille de vous renseigner sur le "switch"
et le "do / while".
Si vous devez optimiser la rapidité de votre code :
Utilisez = = = plutot que = = c'est l'operateur d'egalite stricte qui est plus rapide mais attention :
true === true est vrai alors que 1 === true est faux, pourtant 1 == true est vrai (l'egalite stricte se base aussi sur le type)
Le switch est plus rapide qu'une batterie de if, c'est toujours bon a savoir :).
Un for est traduit en while alors utilisez un while (Bon la j'avoue c'est vraiment minime).
Voila ce tutorial évoluera certainement avec le temps, j'espère vous avoir donne quelques informations intéressantes :)