Bonjour à tous,

Je me pose une question quant à la portée des variables en php. J'ai un petit exemple, sans grand intérêt, qui permet d'illustrer mon propos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
 
$jeGlobale = "J'ai une portée globale !";
if(2>1){
  $estPlusGrand = "Oui, c'est vrai...<br>";
}
if(true){
  echo $estPlusGrand;
}
echo $estPlusGrand;
?>
Logiquement la variable $estPlusGrand n’existe que dans le contexte du premier if. Cependant, $estPlusGrand semble avoir une portée globale, pourquoi ? Par contre, $jeGlobale je suis d'accord est elle globale.

Autre exemple un peu plus rustique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?php
try{
$pdo = new PDO('hello');
}catch(Exception $ex){
  echo "Exception lancée...<br>";
}
echo $ex->getMessage();
?>
Là aussi $ex->getMessage() affiche le message...

La doc php à ce sujet :
PHP variables scope

Est-ce que quelqu'un pourrait m'expliquer ?

Merci pour votre aide.