Problème variable dans une new PDO

Résolu
CorentinRoche Messages postés 287 Statut Membre -  
CorentinRoche Messages postés 287 Statut Membre -

Bonjour,

Alors la je comprend pas ..

Je définie des variables au dessus de ma fonction ..

//Variable IP Serveur BDD
$serveur_bdd = "172.16.1.120";
//Variable Nom database
$database_name = "DASHDEV";
//Varaible Utilisateur BDD
$database_user = "test";
//Varaible mot de passe BDD
$database_password = "test";

function get_pdo (): PDO {
    return new PDO("mysql:host=".$serveur_bdd.";dbname=".$database_name , $database_user, $database_password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
}

En résultat j'ai Undefined variable.... Alors que je peux très bien les echo ...

Le echo n'est pas dans mon exemple de code au dessus mais je vous assure qu'elle sont bien afficher...

Si vous avez des idées ...


Windows / Opera 92.0.0.0


1 réponse

jordane45 Messages postés 40050 Statut Modérateur 4 754
 

Bonjour,

C'est un problème de portée des variables.

Soit tu les définis en tant que constantes ...

Soit, dans ta fonction, tu y fais appel en global

https://www.php.net/manual/en/language.variables.scope.php


0
CorentinRoche Messages postés 287 Statut Membre 40
 

Bonjour, Merci de votre retour !

J'ai bien regarde la doc la dessus je comprend pas la difference entre mon code est clui donnée dans l'exemple php :

<?php
$a = 1; /* global scope */ 

function test()
{ 
    echo $a; /* reference to local scope variable */ 
} 

test();
?>

Hormis les Guillemets sur les variables

$serveur_bdd = "172.16.1.120"; 
0
CorentinRoche Messages postés 287 Statut Membre 40 > CorentinRoche Messages postés 287 Statut Membre
 

Je viens de voir la doc sur globals que je ne connaissez pas. Effectivement cela fonctionne bien !

function get_pdo (): PDO {
    return new PDO("mysql:host=".$GLOBALS['serveur_bdd'].";dbname=".$GLOBALS['database_name'] , $GLOBALS['database_user'], $GLOBALS['database_password'], [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
}
0