2009-04-28 6 views

Répondre

16
class test1 { 
      function test2 { 
       global $config_key_security; 
       echo $config_key_security; 
     } 
    } 

ou

class test1 { 
      function test2 { 
       echo $GLOBALS['config_key_security']; 
     } 
    } 

Faire dépendre votre classe d'une variable globale n'est pas vraiment la meilleure pratique - vous devriez plutôt la passer au constructeur.

7

Une autre option consiste à inclure test.php dans la méthode test2. Cela rendra la portée de la variable locale à la fonction.

class test1 { 
      function test2 { 
       include('test.php'); 
       echo $config_key_security; 
     } 
    } 

Ce n'est toujours pas une bonne pratique.

+1

Tant que ce ne soit pas abusé, c'est un moyen très utile permettant la configuration des classes à l'exécution. Il vous permet également de séparer la logique du programme de la présentation en extrayant la partie "modèle" d'une fonction et en la plaçant dans un include. –

2

Utilisation de la méthode __construct().

include test.php; 
$obj = new test1($config_key_security); 
$obj->test2(); 

class test1 
{ 
    function __construct($config_key_security) { 
     $this->config_key_security = $config_key_security; 
    } 

    function test2() { 
     echo $this->config_key_security; 
    } 
} 
7

Demandez à votre fichier de configuration de créer un tableau d'éléments de configuration. Incluez ensuite ce fichier dans le constructeur de votre classe et enregistrez sa valeur en tant que variable membre. De cette façon, tous vos paramètres de configuration sont disponibles pour la classe.

test.php:

<? 
$config["config_key_security"] = "test"; 
$config["other_config_key"] = true; 
... 
?> 

test5.php:

<? 
class test1 { 
    private $config; 

    function __construct() { 
     include("test.php"); 
     $this->config = $config; 
    } 

    public function test2{ 
     echo $this->config["config_key_security"]; 
    } 
} 
?> 
+0

Cela devrait être la réponse choisie – lloop

1

la façon dont je préfère le faire est la suivante:

Dans test.php

define('CONFIG_KEY_SECURITY', 'test'); 

puis:

dans test5.php

include test.php 
    class test1 { 
      function test2 { 
       echo CONFIG_KEY_SECURITY; 
     } 
    } 
1

Vous pouvez utiliser le tableau de variables $ GLOBALS et mettez votre variable globale comme élément en elle.

Par exemple: fichier: configs.php

<?PHP 
    $GLOBALS['config_key_security'] => "test"; 
?> 

fichier: MyClass.php

<?php 
require_once 'configs.php'; 
class MyClass { 
    function test() { 
    echo $GLOBALS['config_key_security']; 
    } 
} 
Questions connexes