Créer une fonction en PHP

Créer une fonction pour simplifier vos sous-programme en PHP.

 

Créer sa fonction

On appelle fonction un sous-programme qui effectue un ensemble d'instructions, par appel de la fonction, dans le corps du programme principal.
Cela permet une simplicité du code et une taille de programme minimale.
Une fonction peut faire appel à elle-même, on parle alors de fonction récursive (Mettre une condition de sortie).

<?php
function nomFonction (paramètres) {
Corps de la fonction
}
?>

Exemple d'une fonction qui affiche une variable en gras.

<?php
function bold($machaine) {
echo ("<B>$machaine</B>");
}
?>

La fonction peut renvoyer une valeur et se terminer grâce au mot-clé return.

return valeur_ou_variable;

 

Créer une fonction avec arguments

Les arguments peuvent être de simple variables, mais aussi des tableaux ou des objets.
Il est possible de donner une valeur par défaut aux arguments.

<?
function dire_texte($qui, $texte = 'Bonjour')
{
if(empty($qui)){ // Si $qui est vide on retourne faux
  return false;
}else{
  echo "$texte $qui"; // on affiche le texte
  return true; // fonction exécutée avec succès
}
}

// Passage des deux paramètres
dire_texte("Mr. le programmeur", "Bienvenue"); // affiche "Bienvenue Mr. le programmeur"

// Utilisation de la valeur par défaut du deuxième paramètre
dire_texte("Mr. le programmeur"); // affiche "Bonjour Mr. le programmeur"
?>

Exemple de paramètres passés dans la fonction.

<?php
$machaine = "machaine";
$couleur = "black";
function afficher($machaine, $couleur) {
print ("<font color=\"$couleur\"> $machaine </font>");
}

afficher($machaine, $couleur='red')
?>

Que vaut alors $couleur par la suite, black ou red ?

Une variable global sera visible dans l'ensemble du code, sa portée ne sera pas limitée à la fonction.
Toutes les fonctions pourront utiliser et modifier cette variable.

Le niveau static permet de définir une variable locale à la fonction, qui persiste durant tout le temps d'exécution du script.

Par défaut la variable possède le niveau local, la variable ne sera modifiée qu'à l'intérieur de la fonction.

 

Créer une fonction et passage de paramètre par référence

Pour modifier une variable, la faire précéder du caractère "&".
Il s'agit alors d'un alias : la valeur de la variable est modifiée à la sortie de la fonction. On parle de passage par référence.
Dans ce cas on passe la référence de la variable à la fonction, ce qui permet de modifier sa valeur.

<?
function dire_texte($qui, &$texte)
{
$texte = "Bienvenue $qui";
}
$chaine = "Bonjour ";
dire_texte("Mr. le programmeur",$chaine);
echo $chaine; // affiche "Bienvenue Mr. le programmeur"
?>

 

Créer une fonction en PHP et retourner plusieurs variables

Lorsque vous souhaitez qu'une fonction retourne plusieurs valeurs, le plus simple est d'utiliser un tableau.

<?
function nom_fonction()
{
// Le code ...
// on retourne les valeurs voulues dans un tableau
return array( $variable1, $variable2, $variable3 );
}
$retour = nom_fonction();
echo "$retour[0] - $retour[1] - $retour[2]";
?>

 

Créer une fonction récursive en PHP

Les fonctions récursives sont des fonctions qui s'appellent elles-mêmes.
Ce type de fonction se révéle indispensable pour parcourir une arborescence par exemple.

<?
function fonction_recursive($n=0)
{
$n++;
echo "$n <br>";

if($n < 10){ // si n est inférieur à 10 on continue
  fonction_recursive($n);
}
}
fonction_recursive(); // affiche les nb de 1 à 10
?>

1
2
3
4
5
6
7
8
9
10

 

Fonction PHP5 pour afficher le nom du client

<?php
/*Il est conseillé de placer chaque class dans un fichier portant le nom de cette class.*/
/*Utiliser require() pour appeler le fichier commande.class.php*/
class client {
/*Pourquoi ne pas utiliser private ?*/
/*Une classe dans les règles a ses attributs protected, des accesseurs, un constructeur.*/
/*Les attribut protected empêche les autres classes de manipuler la class client directement.*/
protected $_num;
protected $_nom;
/*Constructeur de la classe car même nom que la classe.*/
/*Il n'existe qu'un seul constructeur par classe.*/
/*Le paramètre est transmis lors de l'instanciation de la classe client.*/
function client($_nom) {
if ($_nom != "") $this->_nom = $_nom;
}
/*Les accesseurs Get et Set :*/
/*Gèrent les appels à des méthodes ou propriétés non définies dans la classe.*/
public function getNum()
{
return $this->_num;
}
public function setNum($num)
{
$this->_num = $num;
}
public function getNom()
{
return $this->_nom;
}
public function setNom($nom)
{
$this->_nom = $nom;
}
}
/*Instanciation de la class client et transmission du paramètre nom au constructeur.*/
$client = new client("Alphonse") ;
/*Affectation du nom*/
/*$client->setNom('Nicolas');*/
/*Affichage du nom*/
echo $client->getNom();
/*On aurait pu voir à exploiter la variable num*/
?>

Alphonse

 

Fonction pour interdire les caractères spéciaux dans une chaîne

Fonction detect_parasite pour interdire les caractères spéciaux dans une chaîne de caractères.

<?php
function detect_parasite($utilisateur) {
$puncts=array( ";", ",", ":", "!", "?", "/", "&", '\"', "\'", "(", ")","»", "« ", "\n", "\r" );

foreach($puncts as $punct) {
if ( strpos ($utilisateur, $punct))
return True;
}
return False;
}

// Test sur les caractères spéciaux du mail.
if (detect_parasite($utilisateur))
{
$echec=$echec."Votre adresse mail est invalide. Les caractères spéciaux sont interdits.";
echo $echec;
} else {
echo "OK";
}

$$utilisateur="Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.";
detect_parasite($utilisateur)
?>

OK

 

Fonction qui affiche un champ input dans un tableau

<?php
function input ($intitule,$inputname,$inputvalue,$taille)
{
echo "<table><tr>
<td width='150'  align='left'>$intitule :
</td>
<td  width='500'  align='left'><input type=\"texte\" name=\"$inputname\" value=\"$inputvalue\" size=\"$taille\">
</td>
</tr></table>";
}
 
/* Appeler la fonction */
$email = "Lemail";
input ('Un mail','Nom du client',"$email",'50');
?>

Un mail :

 

Tester la validité du format d'une adresse internet

<?php
function isURL($url){
	$pattern='|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
	if(preg_match($pattern, $url) > 0) echo "Le format est correct.";
	else echo "Le format n'est pas correct.";
}

$url="https://visionduweb.fr";
isURL($url);
?>

Le format est correct.

 

Tester si une adresse internet répond

<?php
function connexion($url){
$connect = @fopen($url, "r");		 
if($connect)
{
	fclose($connect);
	$lestatut = "Le site répond.";
        echo "$lestatut";
} else {
	$lestatut = 1;
	$lestatut = "Le site ne répond pas.";
}
}

$url="https://www.google.fr";
connexion($url);
?>

Le site répond.

Une statistique n'est vraiment intéressante que si le chiffre qu'elle donne est imprévu car elle provoque alors une demande d'explication, qui vous apprend quelque chose.
Le rôle de la statistique est moins de renseigner que de fixer le renseignement qu'il faut chercher.
(Propos de O.L. Barenton, confiseur, p.150, Éd. du Tambourinaire, 1962)

Visionduweb - La Réponse Collaborative - 2002 / 2019

Condition d'utilisation du site Visionduweb

Vous êtes soumis au règlement suivant et à ce titre ni l'administrateur ni l'hébergeur ne pourraient ni ne seraient tenu pour responsable de vos actes.
Vous ne devez en aucun cas utiliser les informations présentes sur Visionduweb pour nuire à autrui ou à un système informatique.

La licence CC BY-NC-ND 4.0 est attribuée au contenu rédigé par Visionduweb sur les domaines suivants :
www.visionduweb.com www.visionduweb.eu www.visionduweb.fr www.visionduweb.info

Les profils utilisés par Visionduweb : Anonymous, Visionduweb, Zer00CooL

Le serveur et les services sont accessibles.
------------------------------------
------------

Chercher dans ce site

Menu de connexion