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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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