2010-08-17 4 views
0

Pourquoi cela ne fonctionne pas?variable de chaîne php contenant comme entrée pour la fonction de tableau

$stringhaha ="  1 => General, 
     2 => Business, 
     3 => Entertainment, 
     4 => Health, 
     5 => Politics, 
     6 => Sci/Tech, 
     7 => Sports, 
     8 => News"; 

$all_categories = array($stringhaha); 

print_r($all_categories); 

(. Donnera un tableau avec 1 point)

Bien que cela fonctionne: Si j'inclure le contenu de la variable comme cela, il va créer correctement un tableau avec 8 éléments:

$all_categories = array(1 => General, 
     2 => Business, 
     3 => Entertainment, 
     4 => Health, 
     5 => Politics, 
     6 => Sci/Tech, 
     7 => Sports, 
     8 => News); 

print_r($all_categories); 
+5

C'est l'un de ces moments où je souhaite que PHP soit un peu moins tolérant. Les gens sont tellement habitués à faire ce qu'ils veulent ... – NullUserException

+0

Par ailleurs, votre deuxième exemple "fonctionne", mais vous devez inclure tous ces littéraux entre guillemets. Un autre exemple de PHP étant trop indulgent. – NullUserException

+0

Merci pour tous les commentaires. Comment est-ce que je pourrais faire la fonction de tableau dans php accepter une variable (qui contient l'entrée appropriée de tableau une fois copiée directement dans la fonction de tableau?) Cela semble également impossible selon mon exemple. – giorgio79

Répondre

2

Ce qui se passe est exactement ce à quoi vous devez vous attendre: vous avez déclaré un tableau contenant une chaîne.

Peu importe que votre chaîne ressemble à un tableau pour nous humains, PHP est simplement PHP, et ne peut pas détecter magiquement que vous voulez analyser un tableau d'une chaîne.

giorgio79, rencontrez PHP Docs, votre nouveau meilleur ami.

+0

Ok merci. Voici quelques informations supplémentaires pour les autres qui me suivent: http://www.php.net/manual/fr/language.types.array.php – giorgio79

2

C'est ce qu'on appelle la syntaxe du langage. Tu ne peux pas faire ce que tu veux. Vous devez parler la langue comment il a été conçu.

Cela ne fonctionne pas non plus

message = hello 

Pourquoi? Parce que ce n'est pas syntaxiquement correct. Même chose pour votre exemple avec tableau.

Ceci est correct

$message = 'hello'; 

Chaque langue a des règles et vous devez les respecter. Bonne chance.

0

Je pense que la syntaxe correcte est:

$all_categories = array(1 => "General", 
    2 => "Business", 
    3 => "Entertainment", 
    4 => "Health", 
    5 => "Politics", 
    6 => "Sci/Tech", 
    7 => "Sports", 
    8 => "News"); 

print_r($all_categories); 

Vous ne voulez un tableau de chaînes, non?

Questions connexes