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 :wink:

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? #-o

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 :mrgreen:
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 :langue:

Re: objet

Posté : 01 avr. 2010, 20:54
par stealth35
Je veux juste dire que ton exemple, ne sert à rien :langue:
non, c'est du typage fort, même si dans certain cas tu trouve ca débile