Question a propos d'une fonction

playboy-1990 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   -  
avion-f16 Messages postés 19252 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

pitxu Messages postés 689 Date d'inscription   Statut Membre Dernière intervention   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
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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