Maison  >  Article  >  développement back-end  >  Tous les paramètres sont-ils transmis dans des chaînes php ?

Tous les paramètres sont-ils transmis dans des chaînes php ?

青灯夜游
青灯夜游original
2022-12-15 15:07:365014parcourir

Non, les paramètres PHP peuvent être des chaînes, des nombres, des valeurs booléennes, des tableaux, etc. À partir de la version 5.6 de PHP, il est pris en charge pour transmettre des paramètres de tableau. Les paramètres formels de la fonction peuvent utiliser "..." pour indiquer que la fonction peut accepter un nombre variable de paramètres, et les paramètres variables seront transmis à la fonction. sous forme de tableau. La syntaxe "fonction" Nom de la fonction ($arr){//code d'exécution}".

Tous les paramètres sont-ils transmis dans des chaînes php ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3

Fonction personnalisée PHP

Pour déclarer une fonction personnalisée en PHP, vous pouvez utiliser le format de syntaxe suivant :

function 函数名 (参数1, 参数2, ..., 参数n){
    函数体;
    return 返回值;
}

Lors de la déclaration d'une fonction, les parenthèses "()" après le nom de la fonction sont également requises. Les parenthèses contiennent un ensemble de listes de paramètres acceptables. Les paramètres sont les variables déclarées, puis les variables peuvent être utilisées lors de l'appel. fonction. La liste des paramètres peut être vide ou avoir un ou plusieurs paramètres, séparés par des virgules ;

En PHP, utilisez simplement le nom de la fonction et la liste des paramètres pour effectuer un appel de fonction partout où une fonction est nécessaire :

函数名 (参数1, 参数2, ..., 参数n);

On peut voir que le La liste des paramètres d'une fonction est composée de zéro ou plusieurs paramètres, chaque paramètre est séparé par des virgules.

Selon l'emplacement où les paramètres sont utilisés, les paramètres sont divisés en deux types : les paramètres formels et les paramètres réels.

Les paramètres formels sont la liste de paramètres entre parenthèses après le nom de la fonction lors de la définition d'une fonction (appelés « paramètres formels »). Tout comme son nom, les paramètres formels eux-mêmes n'ont pas de valeurs spécifiques. Étant donné que le corps de la fonction doit utiliser des paramètres externes, pour que les paramètres soient transmis correctement, ils doivent être transmis via les paramètres formels et les données du corps de la fonction. Les paramètres formels sont comme indiqué dans la figure ci-dessous.

Tous les paramètres sont-ils transmis dans des chaînes php ?

Les paramètres réels sont les paramètres entre parenthèses après le nom de la fonction lorsque nous appelons la fonction (appelés « paramètres réels »). Les paramètres réels et les paramètres formels doivent correspondre un à un dans l'ordre, et. il remplacera les paramètres formels dans le corps de la fonction. La valeur de la variable correspondante dans , le paramètre de la fonction peut être une valeur spécifique ou une variable. Les paramètres réels sont comme indiqué dans la figure ci-dessous.

Tous les paramètres sont-ils transmis dans des chaînes php ?

passage des paramètres php

Lors de l'appel d'une fonction, vous devez transmettre des paramètres à la fonction. Les paramètres passés dans la fonction sont appelés paramètres réels, tandis que les paramètres définis par la fonction sont appelés paramètres formels. . Il existe quatre façons de transmettre des paramètres à une fonction, à savoir le passage par valeur, le passage par référence, les paramètres par défaut et les paramètres de longueur variable.

1. Passage de valeur

Le passage de valeur est la méthode de passage de valeur par défaut pour les fonctions en PHP, également connue sous le nom de "copie passant par valeur". Comme son nom l'indique, la méthode de transmission de valeur copiera la valeur du paramètre réel, puis la transmettra au paramètre formel de la fonction, donc l'utilisation de la valeur du paramètre dans la fonction n'affectera pas les paramètres réels en dehors de la fonction. Par conséquent, si vous ne souhaitez pas que la fonction modifie la valeur du paramètre réel, vous pouvez le transmettre par valeur.

【Exemple】Ce qui suit définit une fonction simple. La fonction a deux paramètres, et les valeurs des paramètres sont échangées dans la fonction.

<?php
  function swap($a, $b){
    echo &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    $temp = $a;
    $a = $b;
    $b = $temp;
    echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
  }

  $x = 5;
  $y = 7;
  echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
  swap($x, $y);
  echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$y;
?>

Les résultats d'exécution sont les suivants :

Tous les paramètres sont-ils transmis dans des chaînes php ?

2. Passage par référence

Le passage de référence des paramètres consiste à copier l'adresse mémoire du paramètre réel, puis à la transmettre au paramètre formel de la fonction. .Le paramètre réel et le paramètre formel pointent vers la même adresse mémoire, donc l'opération de la fonction sur les paramètres formels affectera les paramètres réels en dehors de la fonction.

Passer par référence consiste à transmettre l'adresse mémoire du paramètre réel au paramètre formel de la fonction. Par conséquent, les paramètres réels et les paramètres formels pointent vers la même adresse mémoire. À ce stade, toutes les opérations à l'intérieur de la fonction affecteront les valeurs des paramètres réels en dehors de la fonction. La méthode de passage par référence consiste à ajouter un symbole & sur la base du passage de valeur, comme indiqué ci-dessous :

function name (&参数1, &参数2, ..., &参数3) {
  ...  
  }

[Exemple] Ajustez légèrement le code de l'exemple ci-dessus et utilisez la méthode de passage par référence pour transmettre les paramètres au fonction d'échange. Le code est le suivant Comme indiqué :

<?php
  function swap(&$a, &$b){
    echo &#39;函数内,交换前 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
    $temp = $a;
    $a = $b;
    $b = $temp;
    echo &#39;函数内,交换后 $a = &#39;.$a.&#39;, $b = &#39;.$b.&#39;<br>&#39;;
  }

  $x = 5;
  $y = 7;
  echo &#39;函数外,交换前 $x = &#39;.$x.&#39;, $y = &#39;.$y.&#39;<br>&#39;;
  swap($x, $y);
  echo &#39;函数外,交换后 $x = &#39;.$x.&#39;, $y = &#39;.$y;
?>

Les résultats d'exécution sont les suivants :

Tous les paramètres sont-ils transmis dans des chaînes php ?

3. Paramètres par défaut

Les paramètres par défaut doivent spécifier une valeur par défaut pour un ou plusieurs paramètres formels de la fonction. Si le paramètre correspondant n'est pas transmis lors de l'appel de la valeur de la fonction, alors la fonction utilisera cette valeur par défaut, ce qui peut éviter les erreurs lors de l'appel sans paramètres, et peut également rendre certains programmes plus raisonnables. Si les paramètres correspondants sont transmis, cette valeur par défaut sera remplacée.

Les paramètres par défaut de la fonction sont les suivants :

function name ($str = &#39;hello&#39;, $url) {
  echo $str; 
}

Parmi eux, le "bonjour le site chinois" après le paramètre formel $str est sa valeur par défaut, et les paramètres formels doivent être connectés à la valeur par défaut en utilisant =.

【Exemple】Définissons une fonction avec des paramètres par défaut comme suit :

<?php
  function add($a, $b=56){
    echo $a.&#39; + &#39;.$b.&#39; = &#39;.($a+$b).&#39;<br>&#39;;
  }
  add(11);
  add(37, 29);
?>

Tous les paramètres sont-ils transmis dans des chaînes php ?

默认参数也可以是多个,而且默认参数必须放在非默认参数右边,并且指定默认参数的值必须是一个具体的值,如数字、字符串,而不能是一个变量。

4、可变长度参数--将一个数组传递给函数

在 PHP 5.6 及以后的版本中,函数的形式参数可使用…来表示函数可接受一个可变数量的参数,可变参数将会被当作一个数组传递给函数。示例如下:

<?php
    function test(...$arr){
        var_dump($arr);
    }
    test(1, 2, 3, 4);
    test(5, 6, 7, 8, 9, 10);
?>

Tous les paramètres sont-ils transmis dans des chaînes php ?

推荐学习:《PHP视频教程

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