Fonction PHP avec une variable comme valeur par défaut pour un paramètre
Par défaut une fonction PHP utilise $_GET
variables. Parfois, cette fonction doit être appelée dans une situation où $_GET
n'est pas définie. Dans ce cas, je vais définir les variables nécessaires à en tant que paramètre comme: actionOne(234)
Pour obtenir un code abstrait, j'ai essayé quelque chose comme ceci:
function actionOne($id=$_GET["ID"])
qui entraîne une erreur:
Parse error: syntax error, unexpected T_VARIABLE
Il est impossible de définir une valeur par défaut du paramètre en utilisant une variable?
Modifier
La actionOne
est appelé "directement" à partir d'une URL en utilisant le cadre Yii. Par la manipulation de la $_GET
variables en dehors de cette fonction, j'ai dû le faire sur un élément central (même s'il est un simple, insignifiant fonction) ou je dois changer le cadre, ce que je n'aime pas faire.
Une autre façon de faire pourrait être une fonction factice (quelque chose comme un pré-fonction), qui est appelée par l'URL. Cette "factice" fonction gère la variable en question et appelle la actionOne($id)
.
Vous devez vous connecter pour publier un commentaire.
Non, ce n'est pas possible, comme indiqué sur le Les arguments de la fonction page de manuel:
Au lieu de cela, vous pouvez soit il suffit de passer la valeur null comme valeur par défaut et la mise à jour de ce sein de votre fonction...
...ou (mieux encore), il suffit de fournir $_GET['ID'] est la valeur de l'argument lorsque vous ne disposez pas d'un ID spécifique pour passer en. (c'est à dire: Gérer cela en dehors de la fonction.)
Vous devriez obtenir que l'id avant d'appeler la fonction. La vérification de l'existence du paramètre pauses de l'encapsulation. Vous devriez faire quelque chose comme ça:
Mais, je serais probablement le faire à l'extérieur de la fonction:
Oui, c'est impossible.
La valeur par défaut doit être une variable statique:
Facile cacahuètes!
(Peut contenir des petites erreurs, des erreurs ou des fautes de frappe!)
Vous avez besoin d'une fonction d'assistance, qui vous appelle principale fonction récursive, mais ayant la valeur NULL comme valeur par défaut:
Mal:
function actionOne($id=$_GET["ID"])
Droite:
Et si vous avez besoin de retourner une valeur:
J'espère que cela aide!
Vous pouvez utiliser la constante variable