⊗ppOpMgGP 88 of 107 menu

Ominaisuuksien saaminen taianomaisesti OOP:ssa PHP:ssä

Seuraava taikamenetelmä, jota käymme läpi, on nimeltään __get. Tämä menetelmä laukeaa, kun yritetään lukea yksityisen tai suojatun ominaisuuden arvoa.

Jos toteutat menetelmän __get jossakin luokassa, kaikki viittaukset olematomiin tai piilotettuihin ominaisuuksiin käsitellään tällä menetelmällä.

Samalla PHP välittää automaattisesti pyydetyn ominaisuuden nimen ensimmäisenä parametrina tähän menetelmään, ja tämän menetelmän palauttama arvo nähdään ominaisuuden arvona, johon viitattu.

Luultavasti ei ole vielä kovin selvää, miten tämä toimii, joten katsotaan käytännön esimerkkiä. Oletetaan, että meillä on tällainen luokka Test, jossa on yksityinen ja julkinen ominaisuus:

<?php class Test { public $prop1 = 1; // julkinen ominaisuus private $prop2 = 2; // yksityinen ominaisuus } ?>

Lisätään luokkaamme taikamenetelmä __get, joka aluksi palauttaa yksinkertaisesti ominaisuuden nimen, johon viitattu:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // palauta vain ominaisuuden nimi } } ?>

Testataan luodun taikamenetelmän toimintaa. Viitataan kolmen tyyppisiin ominaisuuksiin: julkiseen ominaisuuteen, yksityiseen ja olematomaan:

<?php $test = new Test; // Viitataan julkiseen ominaisuuteen: echo $test->prop1; // tulostaa 1 - eli ominaisuuden arvon // Viitataan yksityiseen ominaisuuteen: echo $test->prop2; // tulostaa 'prop2' - ominaisuuden nimi // Viitataan olematomaan ominaisuuteen: echo $test->prop3; // tulostaa 'prop3' - ominaisuuden nimi ?>

Kuten näette, taikamenetelmämme reagoi viittauksiin yksityisiin ja olematomiin ominaisuuksiin, mutta jättää huomiotta viittaukset julkisiin - ne toimivat kuten ennenkin.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää