Maison  >  Article  >  développement back-end  >  Comment passer des paramètres à la fonction php

Comment passer des paramètres à la fonction php

silencement
silencementoriginal
2019-09-26 11:51:472445parcourir

Comment passer des paramètres à la fonction php

Le passage de paramètres de fonction en php a un passage de paramètres formel (emprunt à des langages de programmation tels que le langage C).

C'est-à-dire attribuer la valeur de la variable au paramètre de la fonction. Toutes les opérations effectuées sur le paramètre de la fonction n'ont rien à voir avec la variable d'origine.

//php
function testX( $b )
{
     return $b-=2;
}
$a = 5 ;
$c = testX($a);
print_r($a);//5
print_r($c);//3

Le passage d'adresse (passage par référence) consiste à donner l'adresse de la variable au paramètre de la fonction. Toutes les opérations effectuées sur les paramètres de la fonction sont équivalentes aux opérations sur les variables.

//php
function testS( &$b )
{
     return $b-=2;
}
$a = 5 ;
$c = testX($a);
print_r($a);//3
print_r($c);//3

En PHP, les paramètres de fonction et les variables ouvriront tous de l'espace dans la mémoire, mais le passage normal des paramètres attribue des valeurs aux paramètres, alors que le passage des références ne le fait pas, il mettra l'adresse de la variable

Vers l'espace où se trouvent les paramètres.

Ce qui est particulièrement remarquable, c'est que la manière d'écrire le passage par référence a changé depuis PHP5. Comme indiqué dans le code ci-dessus, modifiez la façon dont PHP est écrit de la même manière que les autres langages de programmation. Vous devez utiliser & lors de la définition de

, et vous n'avez pas besoin d'utiliser & lors de l'appel. C'est très différent de la méthode d'écriture précédente.

//php以前的写法
function &testS( &$b )
{
 return $b-=2;
}
$c = &testS($a);

Avantages :

Ce changement d'écriture, je pense personnellement, vise à réduire le caractère unique du langage php et à se rapprocher des méthodes d'écriture d'autres langages de programmation. Dans un sens, il permet aux programmeurs familiers avec d’autres langages de programmation de maîtriser PHP plus rapidement. Du point de vue de la lecture du code et de la compréhension logique, il ignore complètement toutes les opérations effectuées sur les variables au sein de la fonction. Cela a plus de sens pour l'abstraction du code.

Inconvénients :

Je pense que pour les programmeurs en première ligne du développement, c'est un changement fou. Surtout pour ceux qui font du développement secondaire. Les développeurs secondaires doivent se développer sur la base de leurs prédécesseurs. Lorsque je vois des fonctions, j'ai l'habitude de distinguer les fonctions référence par valeur avec &. Sans cette méthode d'écriture, toutes les fonctions sont identiques. Si un appel à une fonction référence par valeur est impliqué, le programmeur doit entrer dans le fichier. fonction pour vérifier les détails du code. Surtout quand il y a une erreur dans le programme. Vous devez comprendre en détail toutes les modifications apportées aux variables par la fonction référence par valeur. Et annuler le & pour appeler la fonction de référence signifie que vous devez vérifier toutes les fonctions appelées par le programme (car vous ne savez pas quelle fonction est la fonction de référence), et la charge de travail peut être imaginée !

Il existe également des variables globales. Il s'agit d'un moyen direct et rapide de définir des paramètres. Définissez les paramètres à utiliser par la fonction comme variables globales. De cette façon, les opérations à l’intérieur de la fonction utilisent directement la variable elle-même.

Il n'y a aucun problème à l'utiliser dans un programme court, mais ce n'est pas une manière idéale de définir des paramètres lors de l'appel de fichiers externes !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn