Saya melihat variabel $this
di PHP sepanjang waktu dan saya tidak tahu untuk apa variabel itu digunakan. Saya tidak pernah secara pribadi menggunakannya.
Bisakah seseorang memberi tahu saya cara kerja variabel $this
di PHP?
Ini adalah referensi ke objek saat ini, ini paling sering digunakan dalam kode berorientasi objek.
Contoh:
<?php
class Person {
public $name;
function __construct( $name ) {
$this->name = $name;
}
};
$jack = new Person('Jack');
echo $jack->name;
Ini menyimpan string 'Jack' sebagai properti dari objek yang dibuat.
Cara terbaik untuk mempelajari
$this
variabel dalam PHP adalah dengan mencobanya terhadap interpreter dalam berbagai konteks:Jadi
$this
pseudo-variabel memiliki metode dan properti Objek Saat Ini. Hal seperti itu berguna karena memungkinkan Anda mengakses semua variabel anggota dan metode anggota di dalam kelas. Sebagai contoh:$this
adalah referensi ke PHPObject
yang dibuat oleh penerjemah untuk Anda, yang berisi larik variabel.Jika Anda memanggil
$this
di dalam metode normal di kelas normal,$this
mengembalikan Objek (kelas) tempat metode itu berada.Mungkin
$this
saja tidak ditentukan jika konteksnya tidak memiliki Objek induk.php.net memiliki halaman besar yang berbicara tentang pemrograman berorientasi objek PHP dan bagaimana
$this
berperilaku tergantung pada konteks. https://www.php.net/manual/en/language.oop5.basic.phpsumber
Saya tahu pertanyaan lamanya, lagi pula penjelasan pasti lainnya tentang $ this . $ this digunakan terutama untuk merujuk properti kelas.
Contoh:
keluaran:
sumber
Ini adalah cara untuk mereferensikan instance kelas dari dalam dirinya sendiri, sama seperti banyak bahasa berorientasi objek lainnya.
Dari dokumen PHP :
sumber
Mari kita lihat apa yang terjadi jika kita tidak menggunakan $ this dan mencoba untuk memiliki variabel instan dan argumen konstruktor dengan nama yang sama dengan potongan kode berikut
Itu hanya menggema
ini menggemakan 'Tom'
sumber
$this
di konstruktor kedua.$name
adalah Tom, tetapi di luar fungsi, tidak ada nilai apa pun, karena ruang lingkupnya terbatas pada fungsi tersebut.ketika Anda membuat kelas, Anda memiliki (dalam banyak kasus) variabel dan metode instan (alias fungsi). $ this mengakses variabel instan tersebut sehingga fungsi Anda dapat mengambil variabel tersebut dan melakukan apa yang diperlukan untuk melakukan apa pun yang Anda inginkan.
versi lain dari contoh meder:
sumber
$this
adalah referensi ke objek pemanggil (biasanya objek yang memiliki metode tersebut, tetapi mungkin objek lain, jika metode tersebut dipanggil secara statis dari konteks objek sekunder).sumber
$ this adalah variabel khusus dan mengacu pada objek yang sama yaitu. diri.
itu sebenarnya merujuk contoh kelas saat ini
berikut adalah contoh yang akan menghapus pernyataan di atas
sumber
Ini penjelasan rinci yang panjang. Saya harap ini akan membantu para pemula. Saya akan membuatnya sangat sederhana.
Pertama, mari buat kelas
Anda dapat menghilangkan tag penutup php
?>
jika Anda hanya menggunakan kode php.Sekarang mari tambahkan properti dan metode di dalamnya
Class1
.Properti hanyalah variabel sederhana, tetapi kami memberinya nama properti karena di dalam kelas.
Metode ini hanyalah sebuah fungsi sederhana, tetapi kami mengatakan metode karena itu juga di dalam kelas.
Kata
public
kunci berarti bahwa metode atau properti dapat diakses di mana saja dalam skrip.Sekarang, bagaimana kita dapat menggunakan properti dan metode di dalamnya
Class1
?Jawabannya adalah membuat sebuah instance atau sebuah objek, anggaplah sebuah objek sebagai salinan kelas.
Kami membuat sebuah objek, yang merupakan
$object1
salinan dariClass1
semua isinya. Dan kami membuang semua konten yang$object1
digunakanvar_dump()
.Ini akan memberimu
Jadi semua konten
Class1
ada di dalam$object1
, kecualiMethod1
, saya tidak tahu mengapa metode tidak muncul saat membuang objek.Sekarang bagaimana jika kita ingin mengakses
$property1
saja. Sederhana saja, kami lakukanvar_dump($object1->property1);
, kami baru saja menambahkan->property1
, kami menunjuk ke sana.kami juga dapat mengakses
Method1()
, kami melakukannyavar_dump($object1->Method1());
.Sekarang misalkan saya ingin mengakses
$property1
dari dalamMethod1()
, saya akan melakukan inikami buat
$object2 = new Class1;
yang merupakan salinan baruClass1
atau kami dapat mengatakan sebuah contoh. Lalu kami menunjukproperty1
dari$object2
Ini akan dicetak
string(15) "I am property 1"
di browser.Sekarang alih-alih melakukan ini di dalam
Method1()
Kami melakukan ini
The
$this
objek digunakan di dalam kelas untuk merujuk pada kelas itu sendiri.Ini adalah alternatif untuk membuat objek baru dan kemudian mengembalikannya seperti ini
Contoh lain
Kami membuat 2 properti yang berisi bilangan bulat dan kemudian kami menambahkannya dan memasukkan hasilnya
$this->result
.Jangan lupakan itu
$this->property1
=$property1
=119
mereka memiliki nilai yang sama .. dll
Saya harap itu menjelaskan idenya.
Rangkaian video ini akan banyak membantu Anda dalam OOP
https://www.youtube.com/playlist?list=PLe30vg_FG4OSEHH6bRF8FrA7wmoAMUZLv
sumber
Ini mengacu pada instance dari kelas saat ini, seperti yang dikatakan meder .
Lihat Dokumen PHP . Ini dijelaskan di bawah contoh pertama.
sumber