PHP, ASP 3.0 et Delphi sont trois langages ou environnements de développement historiquement populaires dans la création d'applications, en particulier web. En matière de commentaires, PHP se rapproche de nombreux langages C-like en utilisant // pour les commentaires simples et /* */ pour les commentaires multiligne. ASP 3.0, dérivé du VBScript, ne propose que ' pour les commentaires, ce qui limite sa souplesse. Delphi, pour sa part, utilise { } pour les commentaires multiligne, ce qui rappelle sa syntaxe Pascal. PHP est donc plus flexible pour les commentaires, particulièrement utile lors de la documentation de blocs de code complexes.
En termes de concaténation de chaînes de caractères, PHP utilise le point «.» alors qu'ASP emploie l'esperluette & et Delphi, plus logiquement, le +, restant cohérent avec d'autres opérations arithmétiques. Cette différence peut porter à confusion pour ceux qui migrent entre ces langages. Le choix de PHP de dissocier les opérations sur chaînes (.) et les calculs (+) est judicieux pour éviter toute ambiguïté. Cela reflète une conception plus rigoureuse de la gestion des types et des opérations.
Concernant l'accès aux données via les requêtes HTTP, PHP brille par sa simplicité et sa clarté avec $_GET, $_POST et $_SERVER. ASP utilise des objets comme Request.QueryString ou Request.Form, plus verbeux, tandis que Delphi, hors environnement Web direct, n'offre pas de solution native aussi simple sans cadre d'application complémentaire. PHP offre ici une syntaxe épurée et unifiée, rendant le code plus lisible et plus rapide à écrire, ce qui est un atout majeur pour le développement Web.
En ce qui concerne les fonctions mathématiques, PHP possède une large bibliothèque avec des noms cohérents (par exemple abs, acos, atan), ce qui facilite leur mémorisation. ASP, de par sa dépendance à VBScript, propose des noms similaires, mais certaines fonctions comme acos doivent être créées manuellement. Delphi reste puissant avec une bibliothèque mathématique étendue, mais parfois moins intuitive. PHP a ici l'avantage d'un accès direct et simple à des fonctions souvent utilisées dans des contextes web dynamiques ou de traitement de données.
Le traitement des chaînes de caractères montre également la puissance de PHP : fonctions comme strlen, strpos, substr, str_replace sont faciles d'accès et bien nommées. ASP propose des équivalents parfois plus longs ou moins flexibles (exemple INSTR), et Delphi, bien que riche, demande souvent plus de code pour des tâches simples. PHP excelle dans ce domaine, en particulier grâce à une syntaxe compacte, idéale pour les manipulations fréquentes de chaînes dans les pages web.
La structure conditionnelle et les boucles présentent aussi des écarts notables. PHP utilise une syntaxe familière aux développeurs C/C++ avec des blocs bien délimités (if, for, while, switch). ASP s'appuie sur les structures VBScript, restant verbeuses et parfois redondantes (IF ... THEN ... ELSE, SELECT CASE). Delphi, quant à lui, reste très structuré mais demande une rigueur syntaxique plus marquée. PHP offre ainsi un compromis entre lisibilité et concision, ce qui améliore la rapidité de développement.
Enfin, la gestion des objets ou des fonctionnalités système montre la divergence fondamentale entre ces langages. PHP est simple, avec une syntaxe comme file_exists, ou encore la création d'objets via des extensions. ASP repose fortement sur les objets COM (SERVER.CREATEOBJECT), ce qui impose une dépendance à l'environnement Windows. Delphi, en tant que langage compilé, nécessite des appels explicites aux bibliothèques systèmes. PHP conserve ici l'avantage de la portabilité et de la simplicité, en particulier dans les contextes de développement web universel.
| PHP | ASP 3.0 | Delphi | Description |
|---|---|---|---|
| // | ' | // | Ces caractères indiquent un commentaire. |
| /* mes commentaires */ | N'existe pas | { mes commentaires } | Ces caractères indiquent des commentaires sur plusieurs lignes. |
| . | & | + | Cet opérateur permet de concaténer des chaînes de caractères. |
| % | MOD | MOD | Cet opérateur permet d'effectuer le calcul du restant d'une division (le modulo). |
| $_GET["id"] | Request.QueryString("id") | Ces éléments permettent de lire le contenu d'un paramètre passé dans l'URL. | |
| $_POST["id"] | REQUEST.FORM("id") | Ces éléments permettent de lire le contenu d'un paramètre d'un formulaire. | |
| $_SERVER["id"] | REQUEST.SERVERVARIABLES("id") | Ces éléments permettent de lire le contenu d'un paramètre d'une variable serveur. | |
| abs | ABS | ABS | Cette fonction retourne la valeur absolue d'un nombre. |
| acos | Fonction manuelle | ARCCOS | Cette fonction trigonométrique retourne la valeur de l'«ArcCosinus». |
| acosh | ARCCOSH | Cette fonction trigonométrique retourne la valeur de l'«ArcCosinus» hyperbolique. | |
| asin | Fonction manuelle | ARCSIN | Cette fonction trigonométrique retourne la valeur de l'«ArcSinus». |
| asinh | ARCSINH | Cette fonction trigonométrique retourne la valeur de l'«ArcSinus» hyperbolique. | |
| atan | ATN | ARCTAN | Cette fonction trigonométrique retourne l'«Arc Tangente». |
| atan2 | ARCTAN2 | Cette fonction trigonométrique retourne l'«Arc Tangente» de Y/X. | |
| atanh | ARCTANH | Cette fonction trigonométrique retourne la valeur de l'«ArcTangente» hyperbolique. | |
| chdir | CHDIR | Cette fonction permet de changer de répertoire. | |
| chr | CHR | CHR | Cette fonction retourne un caractère ASCII correspondant à la valeur. |
| com | SERVER.CREATEOBJECT | CREATEOLEOBJECT | Cette fonction permet de créer un objet unique OLE de Windows. |
| dechex | HEX | Cette fonction permet de transformer en base décimale vers une base hexadécimale. | |
| decoct | OCT | Cette fonction permet de transformer en base décimale vers une base octale. | |
| date("j") | DAY(DATE) | Ces instructions permettent de retourner le jour de mois courant. | |
| date("l") | WEEKDAYNAME(WEEKDAY(DATE)) | Ces instructions permettent de retourner le nom anglais du jour de la semaine courant. | |
| date("n") | MONTH(DATE) | Ces instructions permettent de retourner le numéro de mois courant. | |
| date("w")+1 | WEEKDAY | Cette fonction retourne le jour de la semaine d'une date. | |
| date("Y") | YEAR | Cette fonction retourne l'année d'une date. | |
| doubleval | CDBL | Cette fonction permet de convertir une expression en une valeur réel de double précision. | |
| echo | RESPONSE.WRITE | Write | Ces instructions permettent de sortie une chaine de caractères vers la sortie standard (généralement la page Web). |
| explode | SPLIT | Ces fonctions permettent de séparé une chaine de caractères en tableau en se basant sur une chaine de caractères de séparation. | |
| file_exists($filename) | fileObj=SERVER.CREATEOBJECT("Scripting.FileSystemObject") fileObj.FileExists(Server.MapPath(filename)) | FILEEXISTS($filename) | Ces instructions permettent de vérifié l'existence d'un fichier. |
| floor | INT | TRUNC | Ces fonctions permettent de retourner seulement la partie entière d'un nombre réel. |
| function mafonction($param1) { return $param1; } |
FUNCTION mafonction(param1) mafonction = param1 END FUNCTION |
FUNCTION mafonction(param1):typeresultat mafonction := param1; END; |
Ces mots réservés permettent de créer une fonction. |
| for($compteur=debut; $compteur<=fin; $compteur++) {
instruction; } |
FOR compteur=debut TO fin instruction NEXT |
FOR compteur:=debut TO fin DO instruction |
Ces mots réservés permettent d'effectuer une boucle de compteur. |
| header("Location: mapage.htm"); | Response.Redirect("mapage.htm") | Ces instructions permettent d'effectuer des redirections vers un autre site. | |
| if(condition) instructionvrai; else instructionfaux; |
IF condition THEN instructionvrai ELSE instructionfaux END IF |
IF condition THEN instructionvrai ELSE instructionfaux; |
Ces mots réservés permettent d'effectuer des comparaisons. |
| is_numeric | ISNUMERIC | Ces fonctions permettent d'indiquer, si la valeur de la variable spécifié, est numérique. | |
| ord | ASC | ORD | Cette fonction retourne le code ASCII d'un caractère. |
| set_time_limit(secondes); | Server.ScriptTimeout(secondes) | Ces instructions permettent de fixer le temps d'exécutions maximum d'un script en secondes. | |
| strlen | LEN | LENGTH | Cette fonction permet d'indiquer la longueur d'une chaine de caractères. |
| strpos(source,recherche)+1 | INSTR(source,recherche) | POS(recherche,source)+1 | Ces fonctions permet de retourner la position d'une sous-chaine de caractères dans une chaine de caractères. |
| strrev | STRREVERSE | Cette fonction permet d'inverser l'ordre de chacun des caractères de la chaine de caractères. | |
| strrpos(source,recherche)+1 | INSTRREV(source,recherche) | Ces fonctions permet de retourner la position d'une sous-chaine de caractères dans une chaine de caractères en effectuant une recherche de la fin vers le début. | |
| strtolower | LCASE | LOWERCASE | Cette fonction permet de convertir en chaine de caractères en minuscule. |
| strtoupper | UCASE | UPPERCASE | Cette fonction permet de convertir en chaine de caractères en majuscule. |
| str_repeat | STRING | Cette fonction permet d'effectuer la répétition d'une chaine de caractères le nombre de fois spécifié et de retourner le résultat. | |
| str_replace(search,replace,source) | REPLACE(source,search,replace) | Cette fonction permet d'effectuer des remplacements de sous-chaines de caractères par une nouvelle sous-chaines de caractères dans chaine de caractères. | |
| substr | MID | COPY | Cette fonction retourne une sous-chaine de caractères contenu dans une chaine de caractères. |
| substr(chaine,0,longueur) | LEFT(chaine,longueur) | COPY(chaine,1,longueur) | Ces instructions permettent de retourner le début d'une chaine de caractères. |
| switch ($evalue) { case cas1: instruction1; break; case cas2: instruction2; break; default: instructionautrement; break; } |
SELECT CASE evalue CASE cas1 instruction1 CASE cas2 instruction2 CASE ELSE instructionautrement END SELECT |
CASE evalue OF cas1: instruction1; cas2: instruction2; ELSE instructionautrement; END; |
Ces mots réservés permettent d'effectuer une évaluation conditionnel de cas. |
| trim | TRIM | Cette fonction supprime les caractères d'espace au début et à la fin d'une chaine de caractères. | |
| while (condition) { instruction; } |
DO WHILE condition instruction LOOP |
WHILE NOT condition DO BEGIN instruction END; |
Ces mots réservés permettent d'effectuer une boucle conditionnel. |