CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Portée des variables ?

darth-bane
darth-bane
Niveau 10
02 décembre 2006 à 00:21:00

Bonsoir !

Je me pose des questions sur la portée des variables en PHP.

Pour moi, ceci est valable :

<?php
$var1 = "lorem ipsum";

function mafonction()
{
$var2 = " bla bla bla";
echo $var1 . $var2;
}
?>

Or le code qui suit ne fonctionne que si mes variable array sont déclarées DANS la fonctions, je ne pige pas pourquoi !

http://www.geneweb.fr/wall-W55y0uBH-php.htm

L´un d´entre vous pourrait-il m´éclairer là-dessus ?

deepblue
deepblue
Niveau 16
02 décembre 2006 à 00:30:32

Pour moi ça c´est faux :
<?php
$var1 = "lorem ipsum";

function mafonction()
{
$var2 = " bla bla bla";
echo $var1 . $var2;
}
?>

Par contre, ça c´est juste :
<?php
$var1 = "lorem ipsum";

function mafonction()
{
global $var1;
$var2 = " bla bla bla";
echo $var1 . $var2;
}
?>

Pseudo supprimé
Pseudo supprimé 02 décembre 2006 à 00:53:26

Le global faut éviter, pour moi :

?p hp
$var1 = "lorem ipsum";

mafonction($var1); // Passage obligé.

function mafonction($var)
{
$var2 = " bla bla bla";
echo $var . $var2;
}
?>

deepblue
deepblue
Niveau 16
02 décembre 2006 à 01:06:01

Pourquoi faudrait il eviter ??
Exemple d´utilisation interressante :

require("class.php");
$toto = new Class;
$toto->function();
pseudo_frame();

Dans pseudo_frame() on a une inclusion de fichier qui lui aussi utilise $toto; (on peut imaginer beaucoup de variables dans un fichier de config, ce qui je fais d´ailleur). Ben moi je dis vive gloal car se tapper tout les var. en param :/

Pseudo supprimé
Pseudo supprimé 02 décembre 2006 à 01:10:13

Global c´est pas optimisé, je sais, c´est pourtant pratique.

Disons que les vars en param bouffent moins de ressources que global étant donné que global doit être dispo partout :/

J´avais vu un espece de test sur un milliers de fonctions instantané avec les var en param et avec global, et les résultats du tps d´exec était sensiblement différent.

Pseudo supprimé
Pseudo supprimé 02 décembre 2006 à 01:14:56

Enfin le test datait de PHP3 ou 4, donc rendu obsolète, il est possible que c´est bien changé de ce coté là.

Je ferais un test un de ces 4.

deepblue
deepblue
Niveau 16
02 décembre 2006 à 01:17:35

C´est comme print ou echo, sur des milliers de testes on voir une différence, mais sinon...

darth-bane
darth-bane
Niveau 10
02 décembre 2006 à 03:59:31

C´est bizarre, parce que par exemple pour ma classe de gestion MySQL, en début de page, je fais :
$db = new DB($user, $pass, $base, $server . $port);

Et ensuite je peux utiliser $db n´importe ou, que ce soit dans la partie principale du code, comme dans les fonctions. Je n´ai jamais utilisé global.

Dans la mesure du possible, je travaille avec des paramètres, mais parfois ça peut être lourd.

Pseudo supprimé
Pseudo supprimé 03 décembre 2006 à 13:15:00

Quelle versio de php ?

Thymotep
Thymotep
Niveau 10
03 décembre 2006 à 13:42:51

Deep je deteste des print et double quote lol ! J´utilise que l´apostrophes ( simple quand tu écris du html ) et echo car plus cours a écrire :-)

deepblue
deepblue
Niveau 16
03 décembre 2006 à 14:49:59

Darth-Bane > dans une class, je crois que c´est différent (a verifier)
Thymotep > lool, parfois les simple apostropphes sont relous car les backslashes quand tu as une apostophes ans une phrases....ça ma saoule de les mettre

darth-bane
darth-bane
Niveau 10
03 décembre 2006 à 17:29:38

+1 pour les apostrophes :ok:

Thymotep
Thymotep
Niveau 10
03 décembre 2006 à 18:20:04

Quand tu fais du html en echo ´ tu n´as pas desoin de faire \´ :bah:

Et puis si tu as 50 638 echo dans une page sa sera 0.015 secondes plus rapide :sournois:

darth-bane
darth-bane
Niveau 10
03 décembre 2006 à 18:25:20

Mais quand tu as besoin de mettre des ´ dans ta chaîne délimitée par des ´, tu est emmmerdé.

Et puis, 0,015 secondes, c´est totalement négligeable, quasiemment nul !

Je me souviens avoir lu que pour une chaîne simple il est conseillé d´utiliser les ´ au lieu des ", mais que quand elle est découpée, en plusieurs portions, les " peuvent êtrent plus simples à utiliser.

Dans la majeur partie des cas, j´utilise les ´, mais j´utilise aussi les " quand ça me semble plus simple.

darth-bane
darth-bane
Niveau 10
03 décembre 2006 à 18:27:52

pour les ´ dans une chaîne, je serai prêt à utiliser &apos; mais voilà, IE ne le reconnait pas :nah:

deepblue
deepblue
Niveau 16
03 décembre 2006 à 18:37:30

et pour les requtes sql c´est nettement plus simple :
"INSERT INTO table (colonnes) VALUES(´$var´, ´$var2´)"

darth-bane
darth-bane
Niveau 10
03 décembre 2006 à 18:38:33

c´est clair !

Thymotep
Thymotep
Niveau 10
03 décembre 2006 à 19:19:28

Aux dernières nouvelle, on ne fait pas de requete dans un echi lol !

Je mets des " pour les requetes, je parlais des echo ( ou print :lol: )

darth-bane
darth-bane
Niveau 10
03 décembre 2006 à 19:51:18

J´utilise de moins en moins le echo pour générer le HTML, je préfère de loin intégrer le PHP dans le code HTML.
Exemple:
<input type="text" name="nom" value="<?php echo $name?>" />

deepblue
deepblue
Niveau 16
03 décembre 2006 à 20:15:01

Quand je veux générer du html via php et quand je dois le faire plusieurs fois dans le site ou meme dans la page, je fais des fonctions du style :
function span($str, $id, $class) {
return ´<span id="´.$id.´" class="´.$class.´">´.$str.´</span>´;
}
et je fais dans ma page :
echo span($var, "", "");

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment