OVH Cloud OVH Cloud

probleme avec fonction is_array

4 réponses
Avatar
Newsgroups
Bonjour,

J'ai un petit soucis avec une ligne de code PHP...
en fait, cela fonctionnais bien avant (en php 4)
j'ai ceci :
$val = "chaine de caractères...";

if (is_array($val)) {
print "tableau";
} else {
print "ce n'est pas un tableau";
}

à l'execution, le résultats est le suivant :
Fatal error: Cannot use string offset as an array in... ...

or, je m'attendrai plutot à avoir un "ce n'est pas un tableau"

Qu'en pensez vous ?
Merci de votre aide. :)

4 réponses

Avatar
ftc
Bonjour,

J'ai un petit soucis avec une ligne de code PHP...
en fait, cela fonctionnais bien avant (en php 4)
j'ai ceci :
$val = "chaine de caractères...";

if (is_array($val)) {
print "tableau";
} else {
print "ce n'est pas un tableau";
}

à l'execution, le résultats est le suivant :
Fatal error: Cannot use string offset as an array in... ...

or, je m'attendrai plutot à avoir un "ce n'est pas un tableau"



Et oui, c'est une longue histoire tout ça.

En fonction de la version de PHP utilisée (je n'ai pas les versions
exactes en tête), tu peux accéder ou non aux caractères en indiquant son
offset. L'équipe PHP à connu des retournements de situation concernant
cette fonctionnalité. Ils semblent s'être mis d'accord et dans les
dernières versions, on peut de nouveau l'utiliser.

Pour être sûr de la compatibilité avec toutes les versions, il vaut
mieux faire un test is_string() et accéder aux élément avec les
fonctions dédiées aux chaînes de caractères.

Avatar
Marc
Newsgroups wrote:

J'ai un petit soucis avec une ligne de code PHP...
en fait, cela fonctionnais bien avant (en php 4)



aucun problemes chez moi avec 2 version de php.

:~/public_html/php/news$ php4 -q is_array.php
ce n'est pas un tableau
:~/public_html/php/news$ php5 -q is_array.php
ce n'est pas un tableau
:~/public_html/php/news$ cat is_array.php
<?php

$val = "chaine de caractères...";

if (is_array($val)) {
print "tableau";
} else {
print "ce n'est pas un tableau";
}

?>


:~/public_html/php/news$ php5 -v
PHP 5.0.5-2ubuntu1.2 (cli) (built: Mar 8 2006 08:18:28)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies

Avatar
P'tit Marcel
J'ai un petit soucis avec une ligne de code PHP...
en fait, cela fonctionnait bien avant (en php 4)
j'ai ceci :
$val = "chaine de caractères...";

if (is_array($val)) {
print "tableau";
} else {
print "ce n'est pas un tableau";
}

à l'execution, le résultat est le suivant :
Fatal error: Cannot use string offset as an array in... ...


1/ quelle version de php ?
2/ à quelle ligne se déclenche l'erreur ?


--
P'tit Marcel

Avatar
Newsgroups
Le Tue, 11 Apr 2006 08:12:57 +0000, ftc a écrit :
Pour être sûr de la compatibilité avec toutes les versions, il vaut
mieux faire un test is_string() et accéder aux élément avec les
fonctions dédiées aux chaînes de caractères.


ok, merci de vos conseils, j'ai fais quelques modifs, et ca marche
correctement. merci !