ugrás a tartalomhoz

fügvénybe külső változó, konstans

lepke · 2008. Szep. 2. (K), 14.19
Lehetséges-e az hogy egy fügvénybe külső változót hívjak meg, már a fügvény írásakor.

konkrét problémám:

$prefix = "valami-";
function jogosult($mire) {
$keres="SELECT `jogosult` FROM `".$prefix."menu` WHERE `hivatkozas`='".$mire."'";//********
}
Ugye a prefix az oldalonként változik de több helyen is használom a jogosult() fügvényt...
 
1

global?

zzrek · 2008. Szep. 2. (K), 14.25
Ha a global-ra gondoltál, akkor ez nagyon rtfm...
global manual
2

define

Szekeres Gergő · 2008. Szep. 2. (K), 15.59

define("PREFIX","valami");

function jogosult($mire) {  
$keres="SELECT `jogosult` FROM `".PREFIX."menu` WHERE `hivatkozas`='".$mire."'";//********  
}  
Olyan értékeket, mint pl a tábla prefix érdemes konstansként definiálni, és egy config fájlba tárolni.
4

persze

lepke · 2008. Szep. 6. (Szo), 17.56
Most csak hogy ne legyen ebből probléma mi hol merre meddig, azért írtam így....
3

bad practice

Hodicska Gergely · 2008. Szep. 3. (Sze), 12.56
Azért arra figyelj, hogy egy függvény a függőségeit alapvetően a paraméterein keresztül kapja meg. Minél több ilyen egyéb függőség van, annál átláthatatlanabb, és nehzebben karbantartható kódod lesz.


Üdv,
Felhő
5

oop

vbence · 2008. Szep. 7. (V), 12.04
Igazából egyik nagy találménya az OOP-nek az eységbe zárás, tehát hatöbb függvényed is dolgozik egy változóval, akkor:

class JogosultsagKezeles {
    protected $prefix;

    public function __contruct ($options) {
        if (!isset ($options["prefix"])
            throw new Exception ("A prefix paraméter közelező!");
        $this->prefix = $options["prefix"];
    }

    public function jogosult($mire) {
        $keres="SELECT `jogosult` FROM `" . $this->prefix . "menu` WHERE `hivatkozas`='" . $mire . "'";
        //********
    }

    public function jogosultsagAdasa($kinek, $mire) {
        if (!$this->jogosult("adminnak"))
            throw new Exception ("Csak admin által futtatható funkció!");
        $keres="INSERT INTO `" . $this->prefix . "menu` ...";
    }


}
Bővebben:
http://hu2.php.net/manual/en/language.oop5.basic.php