Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Declaration et typage de variables

7 réponses
Avatar
(¯`·..Yttrium ...·´¯)
Bjr,
Existe t il un moyen de contraindre l'interpreteur (par le biais d'un
fichier de conf par exemple) à exiger une declaration explicite et un typage
des variables ?
Ce qui permettrait d'afficher une erreur (une erreur, pas un notice..)
lors d'une utilisation de variable non déclarée ,ou bien lors d'un cast non
explicite..

Je sais qu ' un des avantages de Php est le faible typage du langage, pas d
epolémique donc, juste une question.
Merci d'avance.

7 réponses

Avatar
loufoque
(¯`·..Yttrium ...·´¯) a dit le 20/04/2005 à 16:09:

Existe t il un moyen de contraindre l'interpreteur (par le biais d'un
fichier de conf par exemple) à exiger une declaration explicite et un typage
des variables ?


Non.
La déclaration se fait pas assignation, c'est tout (à part pour les
variables membres d'une classe).


Je sais qu ' un des avantages de Php est le faible typage du langage, pas d
epolémique donc, juste une question.


C'est un langage faiblement typé, avec les avantages mais aussi les
inconvénients que ça apporte.

Avatar
loufoque
loufoque a dit le 20/04/2005 à 20:36:

La déclaration se fait pas assignation


Errata :

s/pas/par
La déclaration se fait par assignation

Avatar
Marc
Existe t il un moyen de contraindre l'interpreteur (par le biais d'un
fichier de conf par exemple) à exiger une declaration explicite et un typage
des variables ?


j'utilise : error_reporting(E_ALL);
ca me suffit amplement pour parrer a des betises en tout genre.

ca n'empeche pas le typage mou, mais ca detecte bien des erreurs
sur variables non initialisées.

Avatar
John GALLET
Bonsoir,

Existe t il un moyen de contraindre l'interpreteur (par le biais d'un
fichier de conf par exemple) à exiger une declaration explicite et un typage
des variables ?


Par un paramètre ou une option de compilation magique qui transforme php
en java, non, en tous cas, pas à ma connaissance.

Ce qui permettrait d'afficher une erreur (une erreur, pas un notice..)
lors d'une utilisation de variable non déclarée ,ou bien lors d'un cast non
explicite..


A part réimplémenter des vérifications de types à des points
"stratégiques" (entrée de toutes fonctions et méthode ayant des
paramètres, au moins) à grand coups de is_bidule( ) de :
http://fr2.php.net/manual/en/ref.var.php
(sachant que http://fr2.php.net/manual/en/language.types.php déconseille
de bidouiller avec gettype().)
Il y a aussi les triples opérateurs de comparaison avec type (bof).

Mais tout ça sent la bidouille du plus pur style "usine à charbon
radioactif".

Je sais qu ' un des avantages de Php est le faible typage du langage,


Je ne dirais pas que c'est un avantage, notion elle aussi "polymorphe et
subjective" que "l'intérêt" de la poo. C'est une "caractéristique", une
"souplesse" avec ses avantages et ses inconvénients. M'enfin c'est pas
pire que de mettre des void* partout.

<HS>
Tiens ça me fait penser à la pub de micromou en ce moment dans le métro
parisien, qui est scandaleusement irrespectueuse des Dinos au sens Usenet
du terme, mais qui me fait beaucoup rigoler. Le slogan est "MSOffice a
évolué, et vous ?". Evoluer!=améliorer :-))
</HS>
JG
--
C'est quoi les dinos ?
J'ai compris que c'était des vieux cons, mais à part ça ??
-+- CL in GNU : Je ne voudrais pas passer pour un con... Loupé. -+-

Avatar
cleo
"(¯`·..Yttrium ...·´¯)" a écrit dans le
message de news: 42665c91$0$7212$
Bjr,
Existe t il un moyen de contraindre l'interpreteur (par le biais d'un
fichier de conf par exemple) à exiger une declaration explicite et un
typage
des variables ?
Ce qui permettrait d'afficher une erreur (une erreur, pas un notice..)
lors d'une utilisation de variable non déclarée ,ou bien lors d'un cast
non
explicite..

Je sais qu ' un des avantages de Php est le faible typage du langage, pas
d
epolémique donc, juste une question.
Merci d'avance.


Salut,
Tu as la possibilité de typer les "paramètres objet" des fonctions ou
méthodes en php5.
C'est utile mais pas suffisant, car les types primitifs (string, int ...) ne
sont pas gérables.
http://www.php.net/manual/fr/language.oop5.typehinting.php


--
Cléo

Avatar
portix1
Il est aussi possible de caster les variables (si mes souvenir sont
bons):
$string="hello world";
echo (int) $string;
devrait logiquement provoquer une erreur. Par contre un cast dans
l'autre sens ne devrait pas avoir d'effet (a verifier).
Avatar
loufoque
a dit le 26/04/2005 à 09:55:

$string="hello world";
echo (int) $string;
devrait logiquement provoquer une erreur.


ben non, ça affiche 0.