Maison développement back-end Problème PHP Que signifie le passage de valeur en php

Que signifie le passage de valeur en php

Jan 28, 2023 pm 06:41 PM
php

En PHP, transmettre une valeur signifie copier les paramètres réels lors de l'appel d'une fonction, puis les transmettre aux paramètres formels de la fonction. En fait, les paramètres formels et les paramètres réels occupent respectivement des unités de stockage différentes. La caractéristique du transfert de valeur est un transfert unidirectionnel, c'est-à-dire que lorsque la fonction appelante est appelée, une unité de stockage est allouée au paramètre formel et la valeur du paramètre réel est transmise au paramètre formel une fois l'appel terminé. , l'unité de stockage du paramètre formel est libérée et la valeur du paramètre formel est. Toute modification n'affectera pas la valeur du paramètre réel, et l'unité de stockage du paramètre réel conserve et maintient la valeur inchangée.

Que signifie le passage de valeur en php

L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP8, ordinateur DELL G3

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, et. les paramètres définis par la fonction sont appelés est un paramètre formel. 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.

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 "passage de copie 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.

La caractéristique du transfert de valeur est le transfert unidirectionnel, c'est-à-dire que lorsque la fonction appelante est appelée, une unité de stockage est allouée au paramètre formel et la valeur du paramètre réel est transmise au paramètre formel après le. L'appel est terminé, l'unité de stockage du paramètre formel est libérée et le paramètre formel est. Toute modification de la valeur du paramètre n'affectera pas la valeur du paramètre réel, et l'unité de stockage du paramètre réel conserve et maintient toujours la valeur inchangée. .

【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;
?>
Copier après la connexion

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

Que signifie le passage de valeur en php

Vous pouvez voir sur les résultats d'exécution qu'au sein de la fonction, les valeurs​​sont effectivement échangées, mais en dehors de la fonction, les valeurs​​ne le sont pas changement. On peut donc dire que passer une fonction par valeur revient simplement à transmettre une copie de la variable. Donc, si vous souhaitez que la fonction puisse opérer sur des paramètres externes de la fonction, vous devez utiliser le passage de références.

Passage par référence

Le passage par référence 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 tous deux vers la même adresse mémoire. , donc la fonction a L'opération affectera les paramètres réels en dehors de la fonction.

Passer par référence signifie passer 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) {
    ...    
}
Copier après la connexion

[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;
?>
Copier après la connexion

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

Que signifie le passage de valeur en php

La différence entre le passage de valeur et le passage de référence en php

Transmission de valeur : dans la portée de la fonction, changer la valeur de la variable n'affectera pas l'extérieur de la valeur de la variable de fonction.

Passage par référence : Dans le cadre d'une fonction, toute modification de la valeur est également reflétée en dehors de la fonction, car le passage par référence transmet l'adresse mémoire.

Tapez deux morceaux de code et vous pourrez voir la différence entre les deux. Regardons l'essence à travers le phénomène

function sum($a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//10
Copier après la connexion
function sum(&$a){
  $a++;
  $b = $a;
  return $b;
}
$a = 10;
echo sum($a).&#39;<br />&#39;;//11
echo $a;//11
Copier après la connexion

La différence entre les deux morceaux de code réside dans les paramètres de la fonction sum One est de passer le. valeur $a, et l'autre est de passer la référence& $a, le résultat est que la valeur de $a ne change pas après le passage de la valeur, au contraire, la valeur de $a change après le passage de la référence. Les enfants qui ont appris le langage C ici comprendront ce qui se passe. Ce qui est poussé sur la pile est une copie de la référence.

Puisque la référence pointe vers une certaine variable, l'opération sur la référence est en fait l'opération sur la variable vers laquelle elle pointe. (La fonction revient à passer un pointeur, sauf qu'il n'est pas nécessaire de déréférencer) & est un symbole pointant vers une certaine adresse de variable. Le paramètre formel &$a dans la somme de la fonction est en fait le paramètre réel $a, donc. passez-le en somme et effectuez un + Après l'opération +, la valeur du paramètre réel $a change réellement, c'est tout.

Explication :

La valeur du paramètre d'origine dans le passage par valeur reste la valeur d'origine après l'appel d'autres fonctions, tandis que le passage par référence modifie la valeur d'origine. Lors de la transmission de valeurs selon la méthode de transmission par valeur, si la valeur d'origine doit être modifiée, le code doit être copié. Si la valeur est suffisamment grande ou s'il s'agit d'une grande chaîne de chaînes, le code sera plus. et plus répétitif, en passant par référence, il n'est pas nécessaire de copier le code PHP, ce qui présente un grand avantage dans l'amélioration des performances.

Pour plus de connaissances sur PHP, veuillez visiter le site Web chinois 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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles