Bonjour,

Je viens de tomber sur une chose assez étrange en PHP 5.4.3,
si quelqu'un peut confirmer mon impression.

J'ai 2 fonctions :

La première, appelle une fonction de création de dossier et test le déroulement de cette dernière avant d'exécuter ses propres instructions.

La seconde créer le dossier, dont voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
private function creerDossier($path)
{
    return (file_exists($path)) ? 'FOLDER_ALREADY_EXISTS' : mkdir($path, 0777);
}
Voici les instructions d'appel de cette fonction, qui me retourne un truc assez bizarre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
// Creation du dossier de mise à jour
$check_folder = $this -> creerDossier($maj_relative_path);
 
// On vérifie que le dossier n'existe pas déjà (auquel cas, la mise à jour a déjà été proposée)
if ($check_folder && $check_folder != 'FOLDER_ALREADY_EXISTS')
{
      // instructions....
Le problème, est que je ne rentre jamais dans ma condition...
J'ai fait plusieurs tests dont voici le code, puis les résultats :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
echo 'CHECK FOLDER = exactement >>> ' . $check_folder . ' <<<<br />';
 
if ($check_folder) echo 'CHECK FOLDER = TRUE<br />'; 
 
if ($check_folder == 'FOLDER_ALREADY_EXISTS') echo 'CHECK FOLDER = FOLDER_ALREADY_EXISTS<br />'; 
 
if (is_string($check_folder)) echo 'CHECK FOLDER est une string';
le résultat est :

CHECK FOLDER = exactement >>> 1 <<<
CHECK FOLDER = TRUE
CHECK FOLDER = FOLDER_ALREADY_EXISTS

Je ne comprends pas du tout...
1) le dossier n'existe pas de base.
2) le dossier se créer quand même.
3) si j'actualise ma page, j'obtiens :

CHECK FOLDER = exactement >>> FOLDER_ALREADY_EXISTS <<<
CHECK FOLDER = TRUE
CHECK FOLDER = FOLDER_ALREADY_EXISTS
CHECK FOLDER est une string

Je suis assez perplexe sur le retour de ce code.
Quelqu'un pourrait t'il m'éclairer ?

Merci par avance