PHP talqin qilingan tilini o'rganayotganda, yangi boshlagan veb-dasturchilar $ this soxta o'zgaruvchisi kabi tushunchaga duch kelishadi. Kodda uning maqsadi va foydalanish qoidalari boshqa barcha o'zgaruvchilardan juda farq qiladi, shuning uchun bu masalada batafsil to'xtalishga arziydi.
Sinflar va ob'ektlar
PHP-da 5-versiyadan beri qo'llaniladigan ob'ektga yo'naltirilgan dasturlash (OOP) dasturchiga bir xil sinfdagi ob'ektlar deb nomlangan istalgan sonli nusxalarini yaratish imkoniyatini beradi; bu holda har bir yaratilgan nusxa o'z nomini oladi. Ob'ekt argument deb nomlangan ma'lumotlarni olib, ularni funktsiyalar bilan qayta ishlashi va natijani qaytarishi mumkin. Sinfning har qanday funktsiyasi uning xususiyatlariga to'g'ridan-to'g'ri emas, balki faqat ob'ekt-> mulk konstruktsiyasi orqali kira oladi, shuning uchun savol tug'iladi: har qanday hosil bo'lgan ob'ekt nomidan qat'i nazar ma'lumotlar bilan ishlashga imkon beradigan bunday universal kodni qanday yozish kerak? Shakl 1da ko'rsatilgan misolni ko'rib chiqing.
Ushbu kod o'zgaruvchiga (xususiyatiga) va ikkita funktsiyaga (usulga) ega bo'lgan sinfni e'lon qiladi, ulardan biri konstruktor, ya'ni. avtomatik ravishda yangi ob'ekt yaratilganda boshlanadi. Konstruktor funktsiyasining vazifasi - ob'ekt yaratilganda argument qabul qiladigan xususiyatga ma'lumotlarni belgilash. Usul chaqirilganda xususiyat qiymatini qaytaradi.
Keyin, 12 va 13-qatorlarni ko'rib chiqing. Ularda sinfning ikkita yangi misoli yaratildi, ulardan biri argument sifatida 5 raqamini oladi, ikkinchisi - 7. Ushbu qiymatlar konstruktor funktsiyasi tomonidan o'zgaruvchiga beriladi. (mulk), faqat sinf ichida kirish mumkin. Har bir yaratilgan ob'ekt o'zgaruvchiga beriladi va shunga ko'ra (aniqrog'i, bu o'zgaruvchilar faqat ko'rsatilgan ob'ektlarga mos yozuvlar oladi, ammo bu hozircha muhim emas). Endi siz mulkiy qiymatlarni oddiy usul qo'ng'irog'i yordamida olishingiz mumkin (15 va 16-qatorlar).
$ Bu soxta o'zgaruvchini tayinlash
Iltimos, diqqat qiling: bizda bir xil usullarga ega bo'lgan ikki xil ob'ekt mavjud.
Va bu erda psevdovariable yordamga keladi. Uning nomini inglizchadan "bu" deb tarjima qilish mumkin, ya'ni. u joylashgan ob'ektga ishora qiladi (havola). Natijada, 5-qatorni "ob'ekt xususiyatiga argument qiymatini belgilash", 8-qator - "ob'ekt xususiyatining qiymatini qaytarish" deb o'qilishi mumkin. Uchun, o'zgaruvchi avtomatik ravishda tegishli qiymatga ega bo'ladi.