Paramètres formels typés ?

Eléphanteau du PHP | 32 Messages

02 déc. 2007, 15:04

Bonjour à tous,

J'ai développé un CMS en deux couches mais aujourd'hui je dois passer à 3 couches et puis vue que c'est l'occasion j'ai également décidé de tout recoder en objet :lol:

Je suis habitué à developper en objet mais je n'ai jamais manipulé autre chose que Java :lol:

J'ai donc installé un eclipse PDT all-in-one (tant qu'a faire...) et je suis très étonné car celui me permet de de typer les paramètres formels des méthodes :shock:

J'ai peut-être raté une étape mais PHP 5 n'est plus un langage a typage faible ?

L'analyse syntaxique de ce bout de cette méthode est correcte :
	public function insert(String $table, $tabColumns, $tabValues)
	{
		//Contrôle des paramètres
		if(sizeof($tabColumns) != sizeof($tabValues))
		{
			throw new myException ('Paramètres d\'insertion incorrects');
		}
         }
La je me dit ô miracle je vais pouvoir me décharger du contrôle de type dans mes méthodes... Hélas si le String à l'air de passer, pas moyen de trouver une syntaxe correcte pour les tableaux...
String[] $tabColumns
ou encore
String $tabColumns[]
n'est pas correct... Je vous présice que je n'ai pas de serveur apache dans cet envirronnent donc je ne peux même pas tester ! :evil:

Pourriez-vous me dire si c'est une erreur du plugin PDT de valider cette syntaxe ou bien si il existe bien une manière de typer les paramètres ? Et si oui comment typer un tableau ! Merci à tous ;)

ViPHP
ViPHP | 5924 Messages

02 déc. 2007, 15:40

J'ai peut-être raté une étape mais PHP 5 n'est plus un langage a typage faible ?
Si si, ca n'a pas changé. PHP ne fait que vérifier le type actuel de la variable, c'est à dire qu'une variable n'a pas un type intrinsèque mais un type "courant", qui peut changer à chaque affectation…
Et si oui comment typer un tableau ! Merci à tous ;)
Pour les tableaux, c'est Array. Le contenu du tableau reste non typé, puisque tu peux avoir un tableau de type mixtes…

Eléphanteau du PHP | 32 Messages

02 déc. 2007, 15:52

Merci le Array fonctionne, c'est déjà ça de prit !

Par contre juste une petite interrogation, est-ce que c'est dans l'intérêt de PHP de rester avec un typage faible des varibales ?

Dans le futur ils prévoyent d'aler plus loin dans la conception objet avec un un typage des attributs ou pas du tout (je sais pas si il est possible de le savoir)

Merci ^^ je met en résolu !

Eléphanteau du PHP | 32 Messages

02 déc. 2007, 15:53

Et mince oublié de me loguer... Désolé.

ViPHP
ViPHP | 5924 Messages

02 déc. 2007, 16:10

Par contre juste une petite interrogation, est-ce que c'est dans l'intérêt de PHP de rester avec un typage faible des varibales ?
Je ne sais pas trop, mais dans la mesure où un langage interprété n'a pas besoin de typage pour fonctionner, je ne suis pas sûr que ce soit la meilleure chose à faire pour eux que d'opter pour un typage fort… :-/

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

02 déc. 2007, 16:49

PHP 5 n'est plus un langage a typage faible
Typage dynamique, ça fait moins snob dans la bouche des Javaïstes.
public function insert(String $table, $tabColumns, $tabValues)
C'est un type hint, qui ne s'applique en PHP qu'aux objets et aux tableaux. PHP s'attend alors à ce que $table soit une instance de la classe "String". D'ailleurs, je découvre qu'on peut utiliser les noms des types de variables comme noms de classe, je pensais que c'étaient des mots réservés.
Pour les tableaux, c'est Array.
"array", en minuscule, en fait. PHP est généralement insensible à la casse, mais je recommande d'utiliser la casse originelle dans vos scripts : (array), true, false, null, header(), SimpleXML, etc...
Dans le futur [...] typage des attributs ou pas du tout
Je dirais "pas du tout". Un noyau dur de développeurs du langage sont contre, à ma connaissance.