
Šiandien sužinosime, kaip pataisyti „php naudojant $this, kai ne objekto kontekste“. Tai viena iš dažniausiai pasitaikančių problemų, su kuriomis susiduria nauji PHP kūrėjai.
Kas yra $tai
$tai yra rodyklė, nurodanti dabartinį klasės objektą. Dabartinis objektas reiškia objektą, kuris šiuo metu naudoja funkciją.
Vienoje apibrėžtoje klasėje gali būti daug objektų. Tai sukuria galimybę naudoti vieną funkciją skirtingiems objektams.
Apibrėždami nesame tikri dėl galimų objektų pavadinimų. $tai suteikia mums lankstumo kalbant apie skirtingus objektus.
Pavyzdžiui, sukuriame kokią nors klasę „Gyvūnas“. Klasėje yra keletas duomenų narių ir kai kurie metodai. Žemiau pateikiamas bendras pavyzdys.
Class Animal { // Some code }
Tarkime, kad turime klasės metodą, pavadintą „Walk“, kuris turi tam tikrą kodą konkrečiai užduočiai atlikti. Dabar šį „Pasivaikščiojimo“ metodą naudos skirtingi objektai.
Nesame tikri dėl galimų nuorodos pavadinimų, tačiau rodyklė „$this“ suteikė mums patogumo, nurodant bet kurį galimą klasės objektą.
Class Animal { Walk() { $this->………………. } }
Tarkime, po klasės apibrėžimo šios klasės naudotojas sukūrė objektą pavadinimu „Katė“ ir „Karvė“.
Nors metodas „Pasivaikščiojimas“ atlieka tą pačią užduotį, tik skirtingiems objektams. $tai mūsų nuoroda tampa lengvesnė ir patogesnė.
ATVIRAS
Nors $tai palengvina objektų orientuotą paradigmą (OOP), tačiau tai gali būti klaidingai naudojama procedūrinėje paradigmoje.
Nauji programavimo besimokantieji paprastai pradeda nuo procedūrinės / funkcinės paradigmos. Tačiau dažniausiai naudojamas OOP. Procedūrų programuotojams tai labai paprasta programuojant OOP.
Taigi, jie vis dažniau naudoja OOP. Naudojant OOP vis lėčiau, jie pamiršta funkcines sąvokas.
Nors OOP yra naujos paradigmos funkcijos, taip pat gali prireikti. Funkcinis naudojimas po ilgo laiko gali sukelti daugybę klaidų, iš kurių viena yra „$tai naudojimas procedūrinėje paradigmoje“.
Problemos sprendimas yra būti atsargiems naudojant procedūrinę paradigmą.
Sąvokų peržiūra gali būti gera idėja prieš pradedant programuoti. Dauguma programavimo problemų kyla dėl neplanuoto programavimo.
Programuotojai turi pereiti visus programinės įrangos kūrimo etapus, nesvarbu, ar programinė įranga yra paprasta, ar sudėtinga.