2010-06-06 5 views
0

Est-il possible d'inclure un fichier qui contient une valeur de chaîne (dans le cas présent une liste de valeurs délimitée par des virgules) en tant qu'argument à une fonction?Inclure le contenu du fichier PHP en tant qu'argument à la fonction qui attend la valeur de la chaîne?

Par exemple:

include.php

<?php 
'value1,value2,value3' 
?> 

function.php

<?php 
function test($string) 
{ 
    echo $string; 
} 

test(include 'include.php'); 
?> 

J'ai essayé et ça ne fonctionne pas, mais est-il un moyen de faire ce que j'essaye?

Répondre

5

Est-ce que include.php doit être un fichier PHP?

Sinon, faire un fichier texte ordinaire (en éliminant les <?php et ?> tags), et l'utilisation:

test(file_get_contents('include.txt')); 

qui va juste lire le contenu de include.txt comme une chaîne, et bien sûr, vous pouvez alors fais ce que tu voudras.

Sinon, en utilisant include exécute en fait le PHP dans le fichier, de sorte que vous pouvez faire include.php contiennent:

$variable = 'value1,value2,value3'; 

Et puis utilisez:

include('include.php'); 
test($variable); 
+0

baaah, c'est exactement la même chose, je voulais poster: D –

+0

Je n'aime pas vraiment extraire des données de l'include en déclarant des variables parce que vous pourriez écraser une variable dans l'espace de noms du script inclus (sans IDE vous dira si vous êtes), et il est difficile de dire dans le code d'où vient la variable. –

+0

Merci! J'ai fait un fichier texte et j'ai utilisé 'file_get_contents()'. Nappe! –

1

include.php

<?php 
return 'value1,value2,value3'; 
?> 

Référence: Manuel sur include() (À partir de Exemple # 4)

Si vous devez travailler avec include(), ayant de cette façon est mieux que la définition d'une variable l'inclure IMO, parce que le flux de données est plus compréhensible dans le code. Lors de la définition de variables arbitraires dans l'include, il existe toujours le risque d'écraser une variable dans l'espace de noms du script inclus.

+0

Psst! Réponse directe :-P –

+1

@Col Je ne comprends pas vraiment ce que tu veux dire? –

+0

Je suis en guerre avec des réponses directes, ce que SO encourage trop, alors que la plupart du temps c'est juste un mauvais service à l'OP, l'aidant avec de mauvaises pratiques. –

Questions connexes