Page 1 sur 2
[HS] Discussion autour du typage en PHP
Posté : 01 avr. 2010, 20:09
par stealth35
Modération de zeus : splitté de ce sujet
ouai, pareil ca devien de plus en plus propre et c'est plus rapide a l'exécution pas besoin de faire de transcryptage
Re: objet
Posté : 01 avr. 2010, 20:12
par Dr@ke
Oui oui c'est cool, car:
$var = array('a', 'b', 'c');
function trim_perso($var) {
$var = trim($var);
return $var;
}
Pas testé en 5.3.2, mais je ne pense pas que cela fonctionne encore
Ou le fameux:
$var = false;
echo $var['toto'];
Re: objet
Posté : 01 avr. 2010, 20:15
par stealth35
y'a rien de spécial la
Re: objet
Posté : 01 avr. 2010, 20:16
par Dr@ke
Ben si, c'est tout simplement pas logique, et cela te fait une belle erreur.
Avec une régle typage simple dans la fonction, cela sera bien plus simple.
Surtout par exemple pour $_POST
Re: objet
Posté : 01 avr. 2010, 20:21
par stealth35
ah oui mais un parle pas de ca
on parle de ca
function test_type_hinting(array $arr)
{
var_dump($arr);
}
test_type_hinting(array('kikoo', 'lol'));
test_type_hinting('kikoo lol');
/*
rray(2) {
[0]=>
string(5) "kikoo"
[1]=>
string(3) "lol"
}
Catchable fatal error: Argument 1 passed to test_type_hinting() must be an array, string given
*/
Re: objet
Posté : 01 avr. 2010, 20:23
par Dr@ke
Pas du tout, c'est toi qui en parle, on parlait surtout de cela:
En effet il me semble que dans la/les prochaines versions de php , nous pourrons typer directement dans les déclaration de fonctions/méthodes
En tout cas, c'est de cela que je parlais moi

Re: objet
Posté : 01 avr. 2010, 20:28
par stealth35
En effet il me semble que dans la/les prochaines versions de php , nous pourrons typer directement dans les déclaration de fonctions/méthodes
ton exemple c'est ni dans un fonction ni dans une methode
Re: objet
Posté : 01 avr. 2010, 20:31
par Dr@ke
function trim_perso($var) {
$var = trim($var);
return $var;
}
c'est quoi cela? un mars?
le deuxième, j'ai juste eu la flemme de l'inclure dans une fonction, c'est tout
Re: objet
Posté : 01 avr. 2010, 20:35
par stealth35
lol mais ca c'est un l'intérieur de ta fonction ca a rien avoir
le vrai type fort en dehors de ta definition de fonction ca ressemblerai a ca
$test int = 3;
$text string = 'blabla';
$error Exception = new Exception();
$dom DomDocument = new DomDocument();
ou le typage avant comme en C
Re: objet
Posté : 01 avr. 2010, 20:37
par Dr@ke
Le principe est le même, cela va être utile, c'est tout.
Et cela à tout à fait avoir
Vérifier le type ou caster, c'est lourd à la longue
Re: objet
Posté : 01 avr. 2010, 20:44
par stealth35
parce que ce le fait depuis longtemps, pre php 5.3 on pouvait faire tu type hinting qu'avec les array et les object (donc aussi les class), depuis php 5.3 ca marche
avec tout les types
j'ai un gros doute sur que j'ai dis, parce la j'essaye chez moi et ca marche pas (php 5.3.1, osx), il me semble avec tester au boulot (php 5.3.2 XP) et que ca marchait (array et object ca c'est bon mais c'est les autres...), a voir...
Re: objet
Posté : 01 avr. 2010, 20:47
par Dr@ke
$test int = 3;
$text string = 'blabla';
Puis ceci est un non-sens en php, car tu castes déjà en
string rien qu'en entourant
blabla entre apostrophes.
Même chose avec
3, pour le
int 
Re: objet
Posté : 01 avr. 2010, 20:50
par stealth35
ca marche comme ca dans tout les languages a typage fort et version plus absurde dans certain tu peu faire
var text:String = new String('hello');
Re: objet
Posté : 01 avr. 2010, 20:52
par Dr@ke
Je veux juste dire que ton exemple, ne sert à rien

Re: objet
Posté : 01 avr. 2010, 20:54
par stealth35
Je veux juste dire que ton exemple, ne sert à rien

non, c'est du typage fort, même si dans certain cas tu trouve ca débile