- PHP : Evaluer une expression à partir d'une chaine de caractère - CodeS SourceS
- Extraire une partie d'une chaine de caractère python
- Extraire une partie d'une chaine de caractères
- Problème de conversion d'une date en chaine de caractères
- Comment reprendre juste une partie d'une chaine de caractère ?
13 mars 2017 à 22:39
En pratique on utilise un compilateur de compilateur genre LEX et YACC (ou BISON) ou ANTLR
va voir sur http://www.linux-france.org/article/devl/lexyacc/minimanlexyacc-4.html pour un exemple
On doit créer un fichier de syntaxe et un fichier de définition et le compilateur génère le code source. Il existe une version de Lex et de Yacc pour PHP ou de ou de ANTLR pour PHP https://github.com/beberlei/antlr-php-runtime
23 juin 2009 à 13:26
Il y a déjà une source ici qui exploite cette méthode,
20 juin 2009 à 18:44
le bon code:
$tabSignes=array("=","<>","&&","||","<",">","+","-","%","/","^","&","*","|");
20 juin 2009 à 17:16
$tabSignes=array();
$tabSignes[0]="=";
$tabSignes[1]="<>";
$tabSignes[2]="&&";
$tabSignes[3]="||";
$tabSignes[4]="<";
$tabSignes[5]=">";
$tabSignes[6]="+";
$tabSignes[7]="-";
$tabSignes[8]="%";
$tabSignes[9]="/";
$tabSignes[10]="^";
$tabSignes[11]="&";
$tabSignes[12]="*";
perso, je mettrai:
$tabSignes=array("=","<>","&&","||","<",">","+","-","%","/","^","&","*");
on s'est évité n fois de rentrer au clavier
$tabSignes[n]="une valeur";
pour un tableau multi dimensionné:
$Montab = array(
"Champ0"=>"valeur0",
"Champ1"=>"valeur1",
"ChampN=>"valeurN"
);
je ne sais pas s'il y a une différence de rapidité d'exécution entre
if($var=="quelque chose")
ou
if($var==="quelque chose")
par contre l'instruction de comparaison == vérifie l'égalité mais ne vérifie pas le type des variables
alors que === vérifie que les deux termes de la condition sont strictement identiques et de même type.
exemple:
$var = 0;
if($var == '0') renvoie true // c'est nul, c'est tout.
if($var==='0') renvoie false // le nombre zéro n'est pas identique au caractère zéro
Dans l'évaluation de chaînes, ça peut avoir son importance.
autre exemple de l'intérêt des comparateurs stricts
$myvar = '0'; // variable avec une valeur non nulle affectée
if(!empty($myvar)) {
// faire ceci
}
else {
// faire cela
}
c'est "faire cela" qui va s'exécuter alors que je considère pour ma part que c'est "faire ceci" qui devrait s'exécuter;
avec les comparateurs stricts il n'y a pas de confusion possible:
if($myvar !==NULL) // si une valeur quelconque affectée
echo" faire ceci";
}
else {
echo "faire cela";
}
20 juin 2009 à 12:37
Alors pour la première condition! En fait il s'agit d'un exercice de style c'est donc au développeur de changer cette valeur !
Tu parles d'une manière moins fastidieuse de remplir un tableau ? je suis prenneur de toute nouvelle méthode !!!
Tu soulèves une intérrogation le est plus rapide que le simple ???
Merci de tes remarques.
Bien Cordialement