PHP интерпретацияланған тілін үйрену кезінде бастаушы веб-бағдарламашылар $ this жалған айнымалысы сияқты ұғымға тап болады. Оның мақсаты мен кодта қолдану ережелері барлық басқа айнымалылардан мүлдем өзгеше, сондықтан осы мәселе туралы толығырақ тоқтала кеткен жөн.
Сыныптар мен нысандар
PHP-де 5-нұсқадан бері қолданылып келе жатқан объектілі-бағдарлы бағдарламалау (OOP) программистке объектілер деп аталатын кез келген сол класстың даналарын құруға мүмкіндік береді; бұл жағдайда әрбір жасалған көшірме өз атын алады. Нысан аргументтер деп аталатын мәліметтерді қабылдап, оны функциялармен өңдеп, нәтиже бере алады. Кластың кез-келген функциясы оның қасиеттеріне тікелей емес, тек объект-> меншік құрылысы арқылы қол жеткізе алады, сондықтан сұрақ туындайды: кез-келген генерацияланған объектінің атына қарамастан мәліметтермен жұмыс жасауына мүмкіндік беретін осындай әмбебап кодты қалай жазу керек? 1-суретте көрсетілген мысалды қарастырайық.
Бұл код айнымалысы (қасиеті) және екі функциясы (әдісі) бар класс жариялайды, олардың бірі конструктор болып табылады, яғни. жаңа объект жасалған кезде автоматты түрде басталады. Конструктор функциясының міндеті - объект құрылған кезде аргумент алатын қасиетке деректерді тағайындау. Әдіс шақырылған кезде қасиеттің мәнін қайтарады.
Келесіде 12 және 13 жолдарды қарастырыңыз. Оларда класстың екі жаңа данасы құрылды, олардың біреуі аргумент ретінде 5 санын алады, ал екіншісі - 7. Бұл мәндерді конструктор функциясы айнымалыға тағайындайды. (меншік), тек сынып ішінде қол жетімді. Әрбір құрылған объект айнымалыларға тағайындалады және сәйкесінше (дәлірек айтсақ, бұл айнымалылар тек көрсетілген объектілерге сілтемелер алады, бірақ бұл сәтте маңызды емес). Енді меншіктік мәндерді қарапайым әдіс арқылы алуға болады (15 және 16-жолдар).
$ This жалған айнымалысын тағайындау
Назар аударыңыз: бізде бірдей тәсілдермен екі түрлі объект бар.
Мұнда жалған айнымалы көмекке келеді. Оның атауын ағылшын тілінен «бұл» деп аударуға болады, яғни. орналасқан объектіге сілтеме жасайды (сілтеме). Нәтижесінде for 5-жолды «объект қасиетіне аргументтің мәнін тағайындау», 8-жол - «объект қасиетінің мәнін қайтару» деп оқуға болады. Себебі, айнымалы автоматты түрде тиісті мәнге ие болады.