Kursus Membuat Web

iklan

Pseudo Variabel $This (OOP) dengan PHP (PHP versi 5.6.x dan 7.0.x)

Variabel $this merupakan pseudo variabel yang selalu ber reference dengan semua object yang menginstance suatu class.

Menggunakan pseudo variabel $this

Pseudo variabel $this hanya bisa digunakan dalam class. Jika kita gunakan di luar class, maka akan memunculkan Fatal error: Uncaught Error: Using $this when not in object context in ...

Coba buat kode seperti dibawah ini !

<?php
	class orang
	{	
		var $nama_depan;
		var $nama_belakang;
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>pseudo variabel $this</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$this->nama_depan; // pseudo variabel $this tidak bisa diakses diluar class
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

  • Fatal error: Uncaught Error: Using $this when not in object context in ....

Hal ini terjadi karena pseudo variabel $this tidak bisa digunakan di luar class.

Coba kita buat kode dibawah ini untuk menggunakan pseudo variabel $this didalam class !

<?php
	class orang
	{	
		var $nama_depan;
		var $nama_belakang;
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>pseudo variabel $this</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$guru = new orang;
		$guru->nama_depan = "Muhammad";
		$guru->nama_belakang = "Falah";
		echo $guru->nama_lengkap();
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

  • Muhammad Falah

Buat contoh lagi seperti dibawah ini !

<?php
	class orang
	{	
		var $nama_depan = 'Joko';
		var $nama_belakang = 'Santoso';
		
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>pseudo variabel $this</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$guru = new orang;
		$guru->nama_depan = "Muhammad";
		$guru->nama_belakang = "Falah";
		echo $guru->nama_lengkap();
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

  • Muhammad Falah

Nilai $this->nama_depan akan mengambil nilai yang diatur di $guru->nama_depan = "Muhammad" dan nilai $this->nama_belakang akan mengambil nilai yang diatur di $guru->nama_belakang = "Falah"

Ingat ! pseudo variabel selalu ber reference dengan semua object yang menginstance suatu class.

Pseudo variabel $this adalah object

Pseudo variabel $this adalah object, untuk membuktikannya buatlah kode seperti dibawah ini !

<?php
	class orang
	{	
		function cek_variabel_this()
		{
			return gettype($this);
		}
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>pseudo variabel $this</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$guru = new orang;
		echo $guru->cek_variabel_this();
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar seperti ini :

  • object

Pada kode diatas kita membuat suatu method dengan nama cek_variabel_this() dalam class dan kita gunakan function gettype() untuk mengecek type data suatu variabel, nah ketika kode diatas di jalankan maka di browser akan dikeluarkan object, karena type data dari pseudo variabel $this adalah object.

Memanggil Method dengan pseudo variabel $this

Pada contoh-contoh diatas kita memanggil property dengan pseudo variabel $this, cara memanggil method dalam suatu class dengan pseudo variabel $this seperti ini :

<?php
	class orang
	{	
		function nama_lengkap()
		{
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
		
		function sapa()
		{
			return 'Hallo ' .$this->nama_lengkap();
		}
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>pseudo variabel $this</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$guru = new orang;
		$guru->nama_depan = "Muhammad";
		$guru->nama_belakang = "Falah";
		echo $guru->sapa();
	?>
	</body>
</html>

Jika kode diatas dijalankan di browser maka outputnya ini :

  • Hallo Muhammad Falah

Pseudo variabel $this tidak bisa di assign.

Untuk memudahkan pemahaman mari kita buat kode seperti di bawah ini :

<?php
	class orang
	{	
		function nama_lengkap()
		{
			$this = "Test";
			return $this->nama_depan .' ' .$this->nama_belakang;
		}
		
		function sapa()
		{
			return 'Hallo ' .$this->nama_lengkap();
		}
		
	}
?>
<!doctype html>
<html lang="id">
	<head>
		<title>pseudo variabel $this</title>
		<meta charset="UTF-8">
	</head>
	<body>
	<?php
		$guru = new orang;
		$guru->nama_depan = "Muhammad";
		$guru->nama_belakang = "Falah";
		echo $guru->sapa();
	?>
	</body>
</html>

Jika kode diatas kita jalankan di browser maka akan keluar error seperti ini :

  • Fatal error: Cannot re-assign $this in D:\myweb\oop\variabel-this6.php on line 6

Error ini muncul karena kita meng assign nilai pada pseudo variabel $this pada baris kode ini $this = "Test".

Selanjutnya kita akan membahas tentang inheritance (pewarisan) dalam oop (object oriented programming).

muhammad falah

Saya Muhammad Falah, jika Anda ingin langsung belajar dengan Saya, silakan ikuti kursus membuat web yang Saya bimbing atau ikuti Saya di :

Muhammad Falah Youtube Channel Muhammad Falah LinkedIn Muhammad Falah Google Plus Muhammad Falah Twitter Muhammad Falah Facebook

copy right © 2015