Question a propos d'une fonction

playboy-1990 Messages postés 593 Statut Membre -  
avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai deux questions à propos d'une fonction reprise de wordpress

1) Je me demande à quoi sert les &
dans le non de la fonction, son paramètre, avant la déclaration d'une variable etc.
2) Je me demande à quoi sert le global à la deuxième ligne de la fonction
je connaissais la variable $GLOBALS mais pas global

function &get_comment(&$comment, $output = OBJECT) {
	global $wpdb;
	$null = null;

	if ( empty($comment) ) {
		if ( isset($GLOBALS['comment']) )
			$_comment = & $GLOBALS['comment'];
		else
			$_comment = null;
	} elseif ( is_object($comment) ) {
		wp_cache_add($comment->comment_ID, $comment, 'comment');
		$_comment = $comment;
	} else {
		if ( isset($GLOBALS['comment']) && ($GLOBALS['comment']->comment_ID == $comment) ) {
			$_comment = & $GLOBALS['comment'];
		} elseif ( ! $_comment = wp_cache_get($comment, 'comment') ) {
			$_comment = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_ID = %d LIMIT 1", $comment));
			if ( ! $_comment )
				return $null;
			wp_cache_add($_comment->comment_ID, $_comment, 'comment');
		}
	}


Merci d'avance

2 réponses

  1. pitxu Messages postés 708 Statut Membre 95
     
    Bonjour,

    1 - un nom de fonction peut comporter des lettres, des chiffres et les caractères _ et & (les espaces ne sont pas autorisés!)

    2 - Une variable précédée du mot clé global sera visible dans l'ensemble du code, c'est-à-dire que sa portée ne sera pas limitée à la fonction seulement. Ainsi, toutes les fonctions pourront utiliser et modifier cette même variable

    cf : https://www.commentcamarche.net/contents/792-php-les-fonctions
    0
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Salut.

    Les "et" commercials permettent de passer des références.
    Celles-ci permettent d'accèder à la variable d'origine au lieu de créer une copie interne au bloc.

    Pour le mot-clé "global", il permet d'accèder à une variable externe au bloc actuel.

    Voici un exemple :
    #!/usr/bin/php
    
    <?php
    $nombre = 5;
    
    function incrementer($nombre) {
        $nombre += 1;
    }
    
    function incrementer_deux(&$nombre) {
        $nombre += 2;
    }
    
    function incrementer_trois() {
    	global $nombre;
    	$nombre += 3;
    }
    
    function afficherNombre() {
    	global $nombre;
        echo 'Valeur du nombre : '.$nombre."\n";
    }
    
    afficherNombre(); // Valeur du nombre : 5
    incrementer($nombre);
    afficherNombre(); // Valeur du nombre : 5
    incrementer_deux($nombre);
    afficherNombre(); // Valeur du nombre : 7
    incrementer_trois();
    afficherNombre(); // Valeur du nombre : 10
    ?>
    0