Il manque un '?', sans doute une typo. J'écris plutôt TRUE et FALSE pour les constantes booléennes, mais ça ne doit pas changer quoi que de soit.
quand je fais :
echo "$is_imac = $is_imac<br />";
Là, il y a une conversion d'un booléen en chaîne, cette conversion donne: TRUE -> '1' FALSE -> '' C'est comme ça, je n'en sais pas plus.
j'obtiens :
$is_imac > quand le résultat est faux
et :
$is_imac = 1
quand le résultat est vrai
normal ?
Oui.
puis-je faire plus court, du genre :
$is_mac = ($mac_address == $imac_mac_address);
càd sans "? true : false" ???
Bien entendu, s'il s'agit d'affecter à $is_mac une valeur booléenne. Ajouter le ? true : false; est même une redondance à la limite de la faute.
En revanche, pour en faire qualque chose de plus facile à lire (et qui accessoirement continuera dans beaucoup de cas à pouvoir être utilisé comme un booléen, dans un test par exemple: $is_mac = ($mac_address == $imac_mac_address)?1:0; $is_mac = ($mac_address == $imac_mac_address)?'1':'0'; $is_mac = ($mac_address == $imac_mac_address)?'ben vrai, alors...':'ben non...';
Vous pouvez garder votre variable sous forme booléenne, et juste pour l'afficher utiliser l'opérateur ternaire: print($is_mac?'1':'0'); print($is_mac?1:0); ou alors utiliser (int)$is_mac, attention, (string)FALSE donne '', il faudrait faire (string)(int)FALSE pour obtenir '0', il doit y avoir plus simple. Notez que le forçage (bool)expression peut s'écrire !!expression, il n'y a pas de petite économie.
-- Pierre Maurette
Une Bévue :
j'ai une ligne php qui assigne à une variable le contenu d'une comparaison,
j'ai fait ça comme ça :
Il manque un '?', sans doute une typo. J'écris plutôt TRUE et FALSE
pour les constantes booléennes, mais ça ne doit pas changer quoi que de
soit.
quand je fais :
echo "$is_imac = $is_imac<br />";
Là, il y a une conversion d'un booléen en chaîne, cette conversion
donne:
TRUE -> '1'
FALSE -> ''
C'est comme ça, je n'en sais pas plus.
j'obtiens :
$is_imac >
quand le résultat est faux
et :
$is_imac = 1
quand le résultat est vrai
normal ?
Oui.
puis-je faire plus court, du genre :
$is_mac = ($mac_address == $imac_mac_address);
càd sans "? true : false" ???
Bien entendu, s'il s'agit d'affecter à $is_mac une valeur booléenne.
Ajouter le ? true : false; est même une redondance à la limite de la
faute.
En revanche, pour en faire qualque chose de plus facile à lire (et qui
accessoirement continuera dans beaucoup de cas à pouvoir être utilisé
comme un booléen, dans un test par exemple:
$is_mac = ($mac_address == $imac_mac_address)?1:0;
$is_mac = ($mac_address == $imac_mac_address)?'1':'0';
$is_mac = ($mac_address == $imac_mac_address)?'ben vrai, alors...':'ben
non...';
Vous pouvez garder votre variable sous forme booléenne, et juste pour
l'afficher utiliser l'opérateur ternaire:
print($is_mac?'1':'0');
print($is_mac?1:0);
ou alors utiliser (int)$is_mac, attention, (string)FALSE donne '', il
faudrait faire (string)(int)FALSE pour obtenir '0', il doit y avoir
plus simple.
Notez que le forçage (bool)expression peut s'écrire !!expression, il
n'y a pas de petite économie.
Il manque un '?', sans doute une typo. J'écris plutôt TRUE et FALSE pour les constantes booléennes, mais ça ne doit pas changer quoi que de soit.
quand je fais :
echo "$is_imac = $is_imac<br />";
Là, il y a une conversion d'un booléen en chaîne, cette conversion donne: TRUE -> '1' FALSE -> '' C'est comme ça, je n'en sais pas plus.
j'obtiens :
$is_imac > quand le résultat est faux
et :
$is_imac = 1
quand le résultat est vrai
normal ?
Oui.
puis-je faire plus court, du genre :
$is_mac = ($mac_address == $imac_mac_address);
càd sans "? true : false" ???
Bien entendu, s'il s'agit d'affecter à $is_mac une valeur booléenne. Ajouter le ? true : false; est même une redondance à la limite de la faute.
En revanche, pour en faire qualque chose de plus facile à lire (et qui accessoirement continuera dans beaucoup de cas à pouvoir être utilisé comme un booléen, dans un test par exemple: $is_mac = ($mac_address == $imac_mac_address)?1:0; $is_mac = ($mac_address == $imac_mac_address)?'1':'0'; $is_mac = ($mac_address == $imac_mac_address)?'ben vrai, alors...':'ben non...';
Vous pouvez garder votre variable sous forme booléenne, et juste pour l'afficher utiliser l'opérateur ternaire: print($is_mac?'1':'0'); print($is_mac?1:0); ou alors utiliser (int)$is_mac, attention, (string)FALSE donne '', il faudrait faire (string)(int)FALSE pour obtenir '0', il doit y avoir plus simple. Notez que le forçage (bool)expression peut s'écrire !!expression, il n'y a pas de petite économie.
-- Pierre Maurette
Une Bévue
Le 19/04/2012 18:43, Pierre Maurette a écrit :
Une Bévue :
j'ai une ligne php qui assigne à une variable le contenu d'une comparaison, j'ai fait ça comme ça :
Il manque un '?', sans doute une typo. J'écris plutôt TRUE et FALSE pour les constantes booléennes, mais ça ne doit pas changer quoi que de soit.
Oui, le "?" était dans la source, par contre oui, je pense que c'est plus judicieux TRUE / FALSE, ce sont des constantes pédéfinies.
quand je fais :
echo "$is_imac = $is_imac<br />";
Là, il y a une conversion d'un booléen en chaîne, cette conversion donne: TRUE -> '1' FALSE -> '' C'est comme ça, je n'en sais pas plus.
Bon, c'est à savoir, c'est tout.
j'obtiens :
$is_imac >> quand le résultat est faux
et :
$is_imac = 1
quand le résultat est vrai
normal ?
Oui.
puis-je faire plus court, du genre :
$is_mac = ($mac_address == $imac_mac_address);
càd sans "? true : false" ???
Bien entendu, s'il s'agit d'affecter à $is_mac une valeur booléenne. Ajouter le ? true : false; est même une redondance à la limite de la faute.
OK
En revanche, pour en faire qualque chose de plus facile à lire (et qui accessoirement continuera dans beaucoup de cas à pouvoir être utilisé comme un booléen, dans un test par exemple: $is_mac = ($mac_address == $imac_mac_address)?1:0; $is_mac = ($mac_address == $imac_mac_address)?'1':'0'; $is_mac = ($mac_address == $imac_mac_address)?'ben vrai, alors...':'ben non...';
Vous pouvez garder votre variable sous forme booléenne, et juste pour l'afficher utiliser l'opérateur ternaire: print($is_mac?'1':'0');
Vu, c'est + élégant...
print($is_mac?1:0); ou alors utiliser (int)$is_mac, attention, (string)FALSE donne '', il faudrait faire (string)(int)FALSE pour obtenir '0', il doit y avoir plus simple. Notez que le forçage (bool)expression peut s'écrire !!expression, il n'y a pas de petite économie.
OK, merci bien pour cette réponse claire et précise !
Le 19/04/2012 18:43, Pierre Maurette a écrit :
Une Bévue :
j'ai une ligne php qui assigne à une variable le contenu d'une
comparaison, j'ai fait ça comme ça :
Il manque un '?', sans doute une typo. J'écris plutôt TRUE et FALSE pour
les constantes booléennes, mais ça ne doit pas changer quoi que de soit.
Oui, le "?" était dans la source, par contre oui, je pense que c'est
plus judicieux TRUE / FALSE, ce sont des constantes pédéfinies.
quand je fais :
echo "$is_imac = $is_imac<br />";
Là, il y a une conversion d'un booléen en chaîne, cette conversion donne:
TRUE -> '1'
FALSE -> ''
C'est comme ça, je n'en sais pas plus.
Bon, c'est à savoir, c'est tout.
j'obtiens :
$is_imac >>
quand le résultat est faux
et :
$is_imac = 1
quand le résultat est vrai
normal ?
Oui.
puis-je faire plus court, du genre :
$is_mac = ($mac_address == $imac_mac_address);
càd sans "? true : false" ???
Bien entendu, s'il s'agit d'affecter à $is_mac une valeur booléenne.
Ajouter le ? true : false; est même une redondance à la limite de la faute.
OK
En revanche, pour en faire qualque chose de plus facile à lire (et qui
accessoirement continuera dans beaucoup de cas à pouvoir être utilisé
comme un booléen, dans un test par exemple:
$is_mac = ($mac_address == $imac_mac_address)?1:0;
$is_mac = ($mac_address == $imac_mac_address)?'1':'0';
$is_mac = ($mac_address == $imac_mac_address)?'ben vrai, alors...':'ben
non...';
Vous pouvez garder votre variable sous forme booléenne, et juste pour
l'afficher utiliser l'opérateur ternaire:
print($is_mac?'1':'0');
Vu, c'est + élégant...
print($is_mac?1:0);
ou alors utiliser (int)$is_mac, attention, (string)FALSE donne '', il
faudrait faire (string)(int)FALSE pour obtenir '0', il doit y avoir plus
simple.
Notez que le forçage (bool)expression peut s'écrire !!expression, il n'y
a pas de petite économie.
OK, merci bien pour cette réponse claire et précise !
Il manque un '?', sans doute une typo. J'écris plutôt TRUE et FALSE pour les constantes booléennes, mais ça ne doit pas changer quoi que de soit.
Oui, le "?" était dans la source, par contre oui, je pense que c'est plus judicieux TRUE / FALSE, ce sont des constantes pédéfinies.
quand je fais :
echo "$is_imac = $is_imac<br />";
Là, il y a une conversion d'un booléen en chaîne, cette conversion donne: TRUE -> '1' FALSE -> '' C'est comme ça, je n'en sais pas plus.
Bon, c'est à savoir, c'est tout.
j'obtiens :
$is_imac >> quand le résultat est faux
et :
$is_imac = 1
quand le résultat est vrai
normal ?
Oui.
puis-je faire plus court, du genre :
$is_mac = ($mac_address == $imac_mac_address);
càd sans "? true : false" ???
Bien entendu, s'il s'agit d'affecter à $is_mac une valeur booléenne. Ajouter le ? true : false; est même une redondance à la limite de la faute.
OK
En revanche, pour en faire qualque chose de plus facile à lire (et qui accessoirement continuera dans beaucoup de cas à pouvoir être utilisé comme un booléen, dans un test par exemple: $is_mac = ($mac_address == $imac_mac_address)?1:0; $is_mac = ($mac_address == $imac_mac_address)?'1':'0'; $is_mac = ($mac_address == $imac_mac_address)?'ben vrai, alors...':'ben non...';
Vous pouvez garder votre variable sous forme booléenne, et juste pour l'afficher utiliser l'opérateur ternaire: print($is_mac?'1':'0');
Vu, c'est + élégant...
print($is_mac?1:0); ou alors utiliser (int)$is_mac, attention, (string)FALSE donne '', il faudrait faire (string)(int)FALSE pour obtenir '0', il doit y avoir plus simple. Notez que le forçage (bool)expression peut s'écrire !!expression, il n'y a pas de petite économie.
OK, merci bien pour cette réponse claire et précise !
Vincent Verdon
Bonsoir,
Le 19/04/2012 21:06, Une Bévue a écrit :
Oui, le "?" était dans la source, par contre oui, je pense que c'est plus judicieux TRUE / FALSE, ce sont des constantes pédéfinies.
Pour être exact, ce sont des mots clefs du langage, dont le manuel indique qu'ils sont insensibles à la casse. Les écrire en majuscule n'est pas une mauvaise idée, ma foi !
Amicalement, Vincent Verdon
Bonsoir,
Le 19/04/2012 21:06, Une Bévue a écrit :
Oui, le "?" était dans la source, par contre oui, je pense que c'est
plus judicieux TRUE / FALSE, ce sont des constantes pédéfinies.
Pour être exact, ce sont des mots clefs du langage, dont le manuel
indique qu'ils sont insensibles à la casse. Les écrire en majuscule
n'est pas une mauvaise idée, ma foi !
Oui, le "?" était dans la source, par contre oui, je pense que c'est plus judicieux TRUE / FALSE, ce sont des constantes pédéfinies.
Pour être exact, ce sont des mots clefs du langage, dont le manuel indique qu'ils sont insensibles à la casse. Les écrire en majuscule n'est pas une mauvaise idée, ma foi !
Amicalement, Vincent Verdon
Clément
Le 19/04/2012 08:35, Une Bévue a écrit :
j'ai une ligne php qui assigne à une variable le contenu d'une comparaison, j'ai fait ça comme ça :