Pereiti prie turinio

PHP vartotojų grupės


Rekomenduojami pranešimai

nu aš stengiuos čia išsiaiškint kaip jis turi veikt, bet kad kažko ir trūksta lyg... pradžiai atsakykit į kode surašytus klausimus, kurie man neaiškūs...

 

išaiškinkit dundukui vieną ir kartą ir daugiau nebeklausiu :)

 

class UserRights {
       ADMIN = 2
       MODERATOR = 1
       MEMBER = 0  // - kas čia? neturi būt skyrybos ženklų prie jų ar dar kažko?

       function __contruct($user) { // $user - kas čia?
               $this->user = $user;
       }

       function isAdmin() {
               $user->dataFromDB['perm'] === $this->ADMIN;
       }

       function isMember() {
               $user->dataFromDB['perm'] === $this->MEMBER;
       }

       function isModerator() {
               $user->dataFromDB['perm'] === $this->MODERATOR; // dataFromDB['perm'] - sita traukt is duombazes? kaip? (duombazej lentele admin su id, username, password ir rights)
       }
}

$rights = new UserRights($user); // vietoj $user čia paduot kintamajį ar palikt kaip yra?
if ($rights->isAdmin()) {
       echo 'show for admin';
}

Redagavo Donatis07
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taigi tau sako, kad parašė pseudokodą, ir tiek. Pirmi trys kintamieji yra konstantos, tik tiek, kad PHP sintaksė ne iki galo teisinga su jomis.

 

$user yra objektas, turintis dataFromDB, kuris yra asociatyvus masyvas su 'perm' raktu, kur saugomas skaičius, nurodantis teisių lygį. (šitas vien iš kodo akivaizdu)

 

Vietoj $user AIŠKU, kad paduodi kintamąjį.

 

TL;DR: pasirašyk pats. Rimtai, jau nebesuskaičiuoju kartų, kiek sakiau – kame reali problema? Du žingsniai: išsitrauki iš DB duomenis ir palygini skaičiuką.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taigi tau sako, kad parašė pseudokodą, ir tiek. Pirmi trys kintamieji yra konstantos, tik tiek, kad PHP sintaksė ne iki galo teisinga su jomis.

 

$user yra objektas, turintis dataFromDB, kuris yra asociatyvus masyvas su 'perm' raktu, kur saugomas skaičius, nurodantis teisių lygį. (šitas vien iš kodo akivaizdu)

 

Vietoj $user AIŠKU, kad paduodi kintamąjį.

 

TL;DR: pasirašyk pats. Rimtai, jau nebesuskaičiuoju kartų, kiek sakiau – kame reali problema? Du žingsniai: išsitrauki iš DB duomenis ir palygini skaičiuką.

 

Dėkui, su šiais dalykais viskas aišku.

 

o kuo skiriasi klasėje function?

 

1. function

2. public function

3. private function

4. protected static function

 

kas čia per bb? :D

* private - pasiekiamas TIK iš tos klasės, kur aprašytas

* protected - pasiekiamas iš tos klasės, kur aprašytas ir iš jos vaikų*

* public - pasiekiamas iš visur

 

tai šitoj klasėj, kurią rašau galiu naudoti public arba private? kuris yra geriau?

Redagavo Donatis07
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš vis dar nesuprantu, ko tu mėtaisi. Jei nori daryt teisių sistemą, daryk. Jei nori mokytis OOP, mokykis (ir tada mokykis tvarkingai, o ne tik tai, kas yra vienam ar kitam pavyzdy). Bet nedaryk mišrainės iš visko iškart.

 

O atsakymas į tavo klausimą turėtų būti akivaizdus. Visai public API (tiems metodams, kuriuos norėsi naudoti iš išorės) turi naudoti public, o visa kita – ideologijos reikalas.

 

T.y., jei aukščiau turimam pavyzdy isAdmin metodas būtų private, tada negalėtum imti jo ir iškviesti ant instancijos iš išorės kaip:

$rights = new UserRights($user);
$rights->isAdmin();

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

o kaip galima mokytis nieko nedarant?

 

Dėkavoju už atsakymus ir pagalbą.

Tai žinoma, kad mokykis ir su praktika. Bet ne tam vienam atvejui „ė o tai šitam ką naudot“. Išmoksti esmę ir tada žinai pats :)

 

IMO paskaityk pradžiai apie OOP bendrai (nebijok, jei pamatysi pavyzdžius iš kitų C stiliaus kalbų – esmė išlieka), o tada imk PHP manualą ir viską apie OOP ten :)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...