Programme PHP valide?

Fermé
Toto - 12 févr. 2009 à 14:53
 Toto - 12 févr. 2009 à 15:10
Bonjour,
N'y aurait il pas une anomalie dans ce code?

Pourquoi 3 '=' ?
Pourquoi un seul '=' dans le if ?

<?php
$filename = 'test.txt';
$somecontent = "Ajout de chaîne dans le fichier\n";

// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {

// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}

// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}

echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";

fclose($handle);

} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>

MErci

1 réponse

bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 860
12 févr. 2009 à 14:58
Le triple égal vérifie à la fois la valeur et son type (false, et booléen dans ton exemple). Un double égal ne permet pas de faire la distinction entre 0 et false. (La négation du === est !==).
Le simple égal est l'affectation de valeur. Une affectation retourne la valeur affectée.
Donc dans ton cas if (!$handle = fopen($filename, 'a')) est équivalent à faire d'abord l'affectation, puis vérification de $handle :
$handle = fopen($filename, 'a');
if (!$handle) {...}
0
Merci
0