PHP pass-by-question de référence

  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Février 1st, 2010, 8:33 pm

La façon dont je comprends passage par référence est présent...

PHP Code: [ Select ]
<?php
function concatenate(&$var, $text)
{
    $var .= $text;
   
    return strlen($var);
}
 
$datum = "To be or not to be?";
 
$len = concatenate($datum, ' That is the question!!');
echo $datum . '<br /><br /><br />' . $len;
?>
  1. <?php
  2. function concatenate(&$var, $text)
  3. {
  4.     $var .= $text;
  5.    
  6.     return strlen($var);
  7. }
  8.  
  9. $datum = "To be or not to be?";
  10.  
  11. $len = concatenate($datum, ' That is the question!!');
  12. echo $datum . '<br /><br /><br />' . $len;
  13. ?>
Elle produit le résultat suivant
Quote:
Etre ou ne pas être? Telle est la question!


42

Je comprends que beaucoup et il est logique...Im la lecture d'un passage JavaScript par référence et cela m'a fait réfléchir sur PHP. Ive fait celui-ci avant quand j'ai eu besoin de deux résultats d'un fonctions et essayé de comprendre comment le faire puisque je ne peux pas avoir deux déclarations en une seule fonction.

Quoi qu'il en soit, c'est-pass-by-reference...Est-il possible de copier une référence ou de comparer une référence en PHP? Ou est-ce que pour passer la référence à la fonction qui est disponible en PHP?

Demandais juste si PHP a ces caractéristiques ainsi...pourrait être utile.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Février 1st, 2010, 8:33 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Février 1st, 2010, 8:38 pm

Bon, il est de copier et le code qui est...
PHP Code: [ Select ]
<?php
function concatenate(&$var, $text)
{
    $var .= $text;
   
    return strlen($var);
}
 
$datum = "To be or not to be?";
 
$len = concatenate($datum, ' That is the question!!');
echo $datum . '<br /><br /><br />' . $len;
 
$ref =& $datum;
 
$ref .= ' Or is it?';
 
echo '<br /><br /><br />' . $datum . '<br /><br /><br />' . $ref;
?>
  1. <?php
  2. function concatenate(&$var, $text)
  3. {
  4.     $var .= $text;
  5.    
  6.     return strlen($var);
  7. }
  8.  
  9. $datum = "To be or not to be?";
  10.  
  11. $len = concatenate($datum, ' That is the question!!');
  12. echo $datum . '<br /><br /><br />' . $len;
  13.  
  14. $ref =& $datum;
  15.  
  16. $ref .= ' Or is it?';
  17.  
  18. echo '<br /><br /><br />' . $datum . '<br /><br /><br />' . $ref;
  19. ?>
Qui m'a donné
Quote:
Etre ou ne pas être? Telle est la question!


42


Etre ou ne pas être? Telle est la question! Ou s'agit-il?


Etre ou ne pas être? Telle est la question! Ou s'agit-il?

Une chose me déconcerte: y at-il rien de tel que la comparaison des références en PHP?

Ou est-ce simplement:
PHP Code: [ Select ]
if($ref == $datum) { return true; }

Est-ce là ce que la comparaison par des références est-ce? Semble trop simple
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Février 1st, 2010, 8:46 pm

Il y a Retour par référence . Cela semble intéressant. Je suppose que je ne connais pas PHP autant que je croyais que je n'avais :D

Temps pour moi de par le livre PHP OReilly :lol:
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Février 1st, 2010, 8:52 pm

Techniquement, vous ne comparons pas les références, vous comparez les variables les références pointent.

Même si vous comparez votre chaîne avec votre référence en utilisant l'égalité stricte (===) il évaluera la valeur true.
Strong with this one, the sudo is.
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Février 1st, 2010, 9:15 pm

joebert a écrit:
Techniquement, vous ne comparons pas les références, vous comparez les variables les références pointent.

Même si vous comparez votre chaîne avec votre référence en utilisant l'égalité stricte (===) il évaluera la valeur true.

Thats what I thought...merci pour la confirmation, je ne savais pas s'il y avait autre chose ou quelque chose de spécial à ce sujet.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8

Afficher de l'information

  • Total des messages de ce sujet: 5 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 113 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC