Autor Zpráva
suky
Profil
BetaCam, Mastodont, bukaj
Rozhodl jsem se jeste jednou navazat na tema http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=66 900&page=1. Ptal jsem se asi pred tydnem na otazku Jde nejakym zpusobem dostat promena nadeklarovana pred tridou do te tridy krome parametru konstruktoru?

Nikdo z v diskuzi protomnych mi neporadili poziti funkce define(). Je dobre tuto funkci pouzivat jako nastaveni hlavnich konstant pro stranku? Nasel jsem ji v kazde tride, kterou jsem stahnul...
Mastodont
Profil
Funkci define() jsme ti opravdu neradili, protože řeč byla o proměnných a tahle funkce je na konstanty ... samozřejmě používat ji můžeš dle libosti.
suky
Profil
Mastodont
No a kdyz nadefinuju promennou do konstanty?
BetaCam
Profil
suky
Je dobre tuto funkci pouzivat jako nastaveni hlavnich konstant pro stranku?

Pro "stránku" ano. Pro samostatné třídy ne. Důvod je stejný jako při použití global. Už sem to psal, ale ještě jednou to zopakuji. Podle mého názoru by pro nastavování samostatných tříd pomocí konfiguračního souboru měla sloužit metoda init() na úrovni dané třídy.
Mastodont
Profil
suky
Konstanta = hodnota se po inicializaci nemůže měnit
Proměnná = hodnotu lze měnit kdykoli

Jestli ti bude stačit konstanta, tak směle do toho.
suky
Profil
BetaCam
Nastuduji init()

Mastodont
OK.

Diky ;)
BetaCam
Profil
suky

Tam neni nic o studiu tu si musíš udělat sám. Dám ti příklad.

Soubor s Třídou
<?php
class Test(){
  private $nastaveni1 = 'Defaultni nastaveni 1';
  private $nastaveni2 = 'Defaultni nastaveni 2';
  private $nastaveni3 = 'Defaultni nastaveni 3';
  public function __construct(){
    $this->init();
  }
  
  private function init(){
    require_once('nastaveni.php');
    foreach($nastaveni AS $key => $val){
      $this->$key = $val;
    }
  }
  public vypisNastaveni(){
    echo $this->nastaveni1.'<br />';
    echo $this->nastaveni2.'<br />';
    echo $this->nastaveni3.'<br />';
  }
}

$obj = new Test();
$obj->vypisNastaveni();
?>

Soubor nastaveni.php

<?php
$nastaveni['nastaveni1'] = 'Hodnota nastaveni 1 ze souboru nastaveni.php';
$nastaveni['nastaveni2'] = 'Hodnota nastaveni 2 ze souboru nastaveni.php';
$nastaveni['nastaveni3'] = 'Hodnota nastaveni 3 ze souboru nastaveni.php';
?>


Je to jen základ bez ochran. Jen aby si pochopil co mám na mysli. :)
suky
Profil
Uz to chapu... diky ;o)
suky
Profil
A kdyz budu tuto hodnotu potrebovat na kazde urovni trid, tak to mam pouzivat v kazde tride nebo dedit?
BetaCam
Profil
suky

To záleží na struktuře a návrhu tříd nebo lépe řečeno celé aplikace.
suky
Profil
BetaCam
OK, na to si budu muset jeste pockat...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0