*   >> Lecture Éducation Articles >> science >> la programmation

Php Reference

Bases de PHP - Partie 14 Introduction Cela fait partie de ma série 14, Notions de base de PHP. En PHP références sont un moyen d'accéder au même contenu variable (de valeur) avec des noms différents. Valeurs (contenu variable) sont conservés dans des emplacements de mémoire. Une variable identifie un emplacement de mémoire. Une référence est généralement utilisé lorsque vous êtes plus intéressé par ce qui est dans un emplacement de mémoire et non la variable. PHP référence est différente de référence dans d'autres langages informatiques.

Comme vous lisez cet article, éviter de faire la comparaison avec ce que vous lisez ou ce qui existe dans d'autres langages informatiques, comme C, car cela pourrait vous confondre. Je l'ai fait de mon mieux pour mettre cela dans une manière progressive logique, donc prendre les choses comme je vous donne. Remarque: Si vous ne pouvez pas voir le code ou si vous pensez que quelque chose manquait (lien brisé, l'image absente), contactez-moi au [email protected]. Qui est, me contacter pour le moindre problème que vous avez à propos de ce que vous lisez.

Mémoire Situation Un emplacement de mémoire est une zone de la mémoire de l'ordinateur qui contient la valeur d'une variable. Une technique de travailler avec un emplacement mémoire Considérer la déclaration suivante: $ var = 5; La valeur 5 se trouve dans une position de mémoire. Vous pouvez utiliser ce même emplacement mémoire pour augmenter la valeur de 5 à 8, en ajoutant 3. Vous feriez ceci: $ var = $ var + 3; Ce qui se passe est la suivante: L'ordinateur sait que $ var identifie l'emplacement de mémoire qui a le numéro 5.

Pour l'opérande de droite de la déclaration ci-dessus, l'ordinateur passe à l'emplacement de mémoire identifié par $ var et ajoute 3 à ce qui est là. Qu'est-ce que il ya 3 5. Quand est ajouté, vous avez 8 à l'emplacement de mémoire identifié par $ var. L'emplacement ayant 8, qui a été affecté à la variable $ var, est toujours assigné à la même variable. Le long de la ligne, rien n'a changé l'affectation. Le même principe est appliqué à des chaînes, comme dans l'exemple suivant: var = $ "un"; $ var = $ var.

" deux"; Notez ici que dans la deuxième déclaration, il ya un point entre $ var et «deux». Ceci est appelé l'opérateur point; il relie deux chaînes ensemble. Dans la première déclaration, $ var possède la valeur, «un». La variable, $ var identifie l'emplacement ayant, «un». Dans la deuxième instruction, pour l'opérande de droite «deux» est ajouté (rejoint) dans ce lieu, pour donner la chaîne, "un deux". L'identification de cette situation n'a pas changé. Donc $ var identifie encore l'emplacement. L'emplacement est toujours assignée à $ var.

Ainsi, pour modifier le contenu d'un emplacement, nous avons utilisé le même emplacement au lieu de deux endroits différents. Différents emplacements de mémoire avec différentes variables examiner les deux états consécutifs suivant: $ myVar = "Je suis le contenu d'un fichier de grande taille de texte à partir du disque dur, maintenant dans la mémoire."; Avar $ = "Je suis le contenu d'un fichier de grande taille de texte à partir du disque dur, maintenant dans la mémoire."; Vous avez deux variables différentes avec des noms différents, mais avec les mêmes valeurs de chaîne.

Une variable identifie un emplacement de mémoire. Deux variables différentes avec deux noms différents identifie deux emplacements de mémoire différentes, toutes choses étant égales. Dans le cas ci-dessus, les deux valeurs, même si sont les mêmes, se trouvent dans deux emplacements de mémoire différents. Même emplacement mémoire pour deux différentes variables PHP, vous pouvez faire le même emplacement de mémoire ont deux variables différentes. Bien sûr, les deux variables différentes vont identifier la même valeur.

Considérons les deux déclarations consécutives suivantes: $ myVar = "Je suis le contenu d'un fichier de grande taille de texte à partir du disque dur, maintenant dans la mémoire."; $ hisVar = & $ myVar; Pour la première déclaration que vous avez une valeur attribuer à la variable, $ myVar. Dans la deuxième instruction, $ myVar est précédé du signe & avant d'être affecté à une nouvelle variable, $ hisVar. Et est un opérateur.

Dans la deuxième instruction, l'opérateur &, précédant la première variable, rend la deuxième variable identifie le même emplacement mémoire (même valeur) que la première variable. Une chose importante à noter ici est que & $ myVar se réfère à un contenu d'emplacement de mémoire. Vous pouvez également dire que & $ myVar se réfère à la valeur de l'emplacement de mémoire. Pour la deuxième déclaration, & $ myVar, avec et, peut être considéré comme une référence, mais $ hisVar ne peut pas être considéré comme une référence; s'il vous plaît, accepter cela.

hisVar $ est une variable, pas une référence; juste l'accepter. & $ myVar est affecté (non assimilé) pour $ hisVar et dans le cours d'être affecté, il rend $ hisVar identifier le même emplacement mémoire que myVar $; accepter cela. Accepter ces trois phrases je viens de donner. Essayer de comprendre pourquoi ils sont comme ça pourrait vous faire pour ne pas comprendre le référencement de PHP. Maintenant, si vous tapez, $ myVar = "homme"; ou $ hisVar = "femme"; Le contenu de la même emplacement mémoire identifié par $ myVar ainsi que $ hisVar allait changer.

La première déclaration allait changer le contenu de «l'homme» et la deuxième déclaration allait changer à «femme». Avec le référencement en tant que telle, à la fois myVar $ et $ hisVar identifient la même valeur (de l'emplacement de mémoire). Aide d'une référence sans pré-déclaration ou affectation dans la section précédente, & $ myVar a été assigné à $ hisVar, et $ myVar a déjà déclaré. Vous pouvez utiliser une référence sans pré-déclaration ou de cession. Une référence se compose de et suivi par un nom de variable.

Le nom de la variable ne doit pas exister avant, comme dans le cas ci-dessus. Dans le cas ci-dessus, vous avez & $ myVar, où $ myVar existait avant. Vous utilisez de telles références dans les expressions et déclarations. Vous ne pouvez pas commencer une déclaration avec cette référence. Vous ne pouvez pas déclarer une variable avec une telle référence. Donc vous ne pouvez pas faire cela: & $ ref = "une valeur"; //mal quand vous avez une référence comme & $ ref dans un segment de code, vous pouvez l'assigner à une variable indirectement.

Un argument, qui est une variable déclarée quelque part, peut-être attribué à une référence, lors d'un appel de fonction. Quelque chose comme: $ = Thevar myFn (var1 $); où $ var1 est une variable déclarée quelque part (ci-dessus) dans le code. La fonction, myFn (), retourne & $ ref lors de l'exécution, qui est affecté à $ Thevar. Nous pouvons dire, cette mission a été fait indirectement. Une référence se réfère à un emplacement de mémoire.

Vous pouvez utiliser la référence à faire ce que vous voulez faire avec l'emplacement de mémoire, telles que la modification du contenu de l'emplacement de mémoire. Vous pouvez avez affecté indirectement la référence à une variable, puis utiliser le contenu de l'emplacement de mémoire, par le biais de la variable. Dans cet article, le contenu d'un emplacement mémoire et la valeur (littérale), signifier la même chose. Lorsque vous connaissez la signification d'une référence; qui est une étape de la compréhension référencement. La prochaine chose à faire est d'apprendre comment l'utiliser.

Continuer à lire. Inconvénient de ne pas utiliser une référence dans certaines situations Imaginez que vous avez un fichier texte dans un disque dur, et le contenu de ce fichier est maintenant dans la mémoire. Vous pourriez avoir ce contenu comme une chaîne, assignée à une variable, de la façon habituelle, dans votre code. Ce que vous voulez vraiment faire avec un tel grand contenu d'un fichier, est de changer une partie de son texte, supprimer une partie de son texte ou ajouter un nouveau texte pour le contenu.

Après que vous enregistrez le contenu en arrière, comme un fichier sur le disque dur et vous ne devez plus le contenu en mémoire. Le code suivant montre une façon de joindre (ajouter à la fin) du texte à ce contenu (il a un inconvénient): $ var1 = ". Je suis le contenu d'un fichier de grande taille de texte à partir du disque dur, maintenant dans la mémoire"; fonction appendFn ($ var2) {$ var2 = $ var2. "Le dernier texte."; retourner var2 $; } $ Var1 = appendFn (var1 $); echo $ var1; ?> Au début du code, vous avez la variable, $ var1. Pour cette variable est attribué une valeur de chaîne.

Cette valeur de chaîne est courte, mais laissez-le représentent le contenu d'un fichier texte volumineux. Ensuite, vous avez la fonction, appendFn (). Cette fonction ajoute la chaîne, "Le dernier texte." à la chaîne de la variable, $ var1. La fonction est appelée comme suit: appendFn ($ var1) où la variable, $ var1 est envoyé comme argument. La fonction elle-même a le paramètre, $ var2. Lorsque la fonction est appelée, ce paramètre identifie la valeur de l'argument envoyé. Ce paramètre est en fait une autre variable à partir de $ var1.

$ var2 détient la valeur de l'argument envoyé par la déclaration d'appel. Donc, juste avant la fonction est exécutée, vous avez deux variables différentes identifiant la même valeur. Cependant, aucune de ces variables est aux prises avec le référencement, vous avez donc la même valeur dans deux endroits différents dans la mémoire. Un des emplacements est identifié par $ var1 et l'autre est identifié par $ var2. Cette situation se poursuit jusqu'à la fin de l'exécution du programme. Il ya deux états dans la définition de fonction. La première déclaration ajoute la chaîne, "Le dernier texte.

" à la valeur de la variable, $ var2. La deuxième instruction renvoie la valeur de la variable, $ var2. La fonction de présentation dans le code (en dehors de la définition de la fonction) appelant reçoit cette valeur et il ré-attribue à la variable, $ var1. Dans ce code, pas de référencement a été officiellement utilisé. Donc, les deux variables chacun a son propre emplacement de mémoire. Une variable est en dehors de la définition de la fonction, et l'autre est à l'intérieur de la définition de la fonction.

L'emplacement de la variable en dehors de la définition de la fonction, a initialement une valeur de chaîne. Après l'appel de fonction, cet endroit a un morceau de ficelle ajouté. L'emplacement de la variable dans la définition de la fonction a initialement la chaîne que l'emplacement de la variable est à l'extérieur. La deuxième déclaration dans la définition de fonction ajoute la ficelle à l'emplacement. A noter que la technique décrite ci-dessus a été utilisé ici. L'existence de ces deux endroits est une perte de mémoire.

Avec le référencement, ces deux endroits peuvent être réduits à un seul endroit (voir ci-dessous). Maintenant, la mémoire est toujours rare. Il est comme l'argent, peu importe combien vous avez, vous avez encore des raisons d'avoir besoin de plus d'argent. Dans le code ci-dessus, la totalité de la mémoire n'a pas été utilisé économiquement. Vous devez toujours essayer d'utiliser aussi peu de mémoire que vous pouvez quand possible. Sachez que l'utilisation de référencement conduit à une utilisation économique de la mémoire et de l'amélioration des performances de votre code.

En passant une variable par référence Il ya des situations où vous avez juste besoin de se référer à un emplacement de mémoire, la variable pour l'emplacement de mémoire est pas très important. Ne serait-il pas agréable, si vous aviez une référence qui se réfère simplement à l'emplacement de la variable $ var1 dans le code ci-dessus. Vous utilisez la référence à annexer la ficelle. Après l'appel de fonction (déclaration) et l'exécution de la fonction, vous ne devez plus la référence. De cette façon, vous aurez juste un emplacement de mémoire pour traiter; non pas deux comme avant.

Donc, vous économiser la mémoire et il ya une amélioration des performances. Le code suivant illustre cette (voir les explications ci-dessous): $ var1 = "Je suis le contenu d'un fichier de grande taille de texte à partir du disque dur, maintenant dans la mémoire."; fonctionner appendFn (& $ ref) {$ ref = $ ref. "Le dernier texte."; return $ ref; } $ Var1 = appendFn (var1 $); echo $ var1; ?> Le code et le précédent sont similaires. La différence réside dans la définition de fonction. Lorsque la fonction est appelée, la variable $ var1 est passé comme argument.

Le paramètre de la fonction est désormais une référence. La partie variable ($ ref) de cette référence n'a pas été précédemment déclarée. Cette référence est pas affectée à une nouvelle variable et ne sera jamais affecté, directement (vous aurez jamais quelque chose comme, $ someVar = & $ ref). Toutefois, il est indirectement affecté à var1 $ au début de l'exécution de la fonction. Alors que la fonction est exécutée, tant var1 $ et $ & ref signifie le même emplacement mémoire.

Le morceau de code que vous considérez comme une référence, commence par &, suivi par un nom de variable, par exemple, $ ref, qui commence avec le $ signé. L'intérieur de la définition de la fonction, vous utilisez le nom de la variable précédé par une partie du $ pour aborder l'emplacement visé par la référence. Comme je l'ai dit ci-dessus, après avoir pris connaissance de la référence de sens, vous devez apprendre comment l'utiliser. Dans ce code, $ ref l'intérieur de la définition de la fonction se réfère à la même endroit que var1 $ à l'extérieur.

La déclaration de retour utilise $ ref pour renvoyer le contenu (valeur) de l'emplacement de mémoire. Il ne pas utiliser & $ ref même si & $ ref est effectivement ce que le retour de l'appel de fonction. Il se produit ici, que la source et la destination emplacement du contenu sont les mêmes. Comme vous pouvez le voir, nous avons utilisé un seul emplacement de mémoire au lieu de deux (comme dans le cas précédent). Nous avons atteint l'économie de la mémoire et des performances améliorées. Fonction retournant une référence dans le code ci-dessus, une référence a été retourné.

Cependant, il est pas toutes les fois où l'emplacement de la référence est le même que celui de l'argument passé. Certaines fonctions peuvent ne pas avoir tous les paramètres (donc recevoir aucun argument), mais vous ne souhaitez qu'elle retourne une référence. La fonction dans le code suivant ne reçoit pas un argument. La fonction retourne une référence et dans la déclaration d'appel, la référence est indirectement affectée à une variable.

la fonction et l'APN () {$ myVar = "une valeur"; retourner myVar $; } $ Thevar = APN (); echo $ Thevar; ?>

Page   <<       [1] [2] [3] [4] [5] [6] [7] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.