Bagaimana Anda membuat objek baru dari kelas di php?

Kita bisa membayangkan alam semesta kita terbuat dari objek yang berbeda seperti matahari, bumi, bulan dll. Demikian pula kita dapat membayangkan mobil kita terbuat dari objek yang berbeda seperti roda, kemudi, persneling, dll. Cara yang sama ada konsep pemrograman berorientasi objek yang menganggap semuanya sebagai objek dan mengimplementasikan perangkat lunak menggunakan objek yang berbeda

Konsep Berorientasi Objek

Sebelum kita membahas secara detail, mari kita definisikan istilah-istilah penting yang terkait dengan Pemrograman Berorientasi Objek

  • Kelas - Ini adalah tipe data yang ditentukan pemrogram, yang mencakup fungsi lokal serta data lokal. Anda dapat menganggap kelas sebagai templat untuk membuat banyak instance dari jenis (atau kelas) objek yang sama

  • Objek − Instance individu dari struktur data yang ditentukan oleh kelas. Anda mendefinisikan kelas satu kali dan kemudian membuat banyak objek yang menjadi miliknya. Objek juga dikenal sebagai instance

  • Variabel Anggota - Ini adalah variabel yang didefinisikan di dalam kelas. Data ini tidak akan terlihat di luar kelas dan dapat diakses melalui fungsi anggota. Variabel-variabel ini disebut atribut objek setelah objek dibuat

  • Fungsi anggota − Ini adalah fungsi yang didefinisikan di dalam kelas dan digunakan untuk mengakses data objek

  • Warisan - Ketika sebuah kelas didefinisikan dengan mewarisi fungsi yang ada dari kelas induk maka itu disebut pewarisan. Di sini kelas anak akan mewarisi semua atau beberapa fungsi anggota dan variabel dari kelas induk

  • Kelas induk − Kelas yang diwarisi dari kelas lain. Ini juga disebut kelas dasar atau kelas super

  • Kelas Anak − Kelas yang mewarisi dari kelas lain. Ini juga disebut subclass atau kelas turunan

  • Polimorfisme - Ini adalah konsep berorientasi objek di mana fungsi yang sama dapat digunakan untuk tujuan yang berbeda. Misalnya nama fungsi akan tetap sama tetapi membutuhkan jumlah argumen yang berbeda dan dapat melakukan tugas yang berbeda

  • Overloading − jenis polimorfisme di mana beberapa atau semua operator memiliki implementasi yang berbeda tergantung pada jenis argumen mereka. Demikian pula fungsi juga dapat dibebani dengan implementasi yang berbeda

  • Abstraksi Data − Representasi data apa pun di mana detail implementasinya disembunyikan (disarikan)

  • Enkapsulasi − mengacu pada konsep di mana kita mengenkapsulasi semua data dan fungsi anggota secara bersamaan untuk membentuk sebuah objek

  • Konstruktor − mengacu pada jenis fungsi khusus yang akan dipanggil secara otomatis setiap kali ada pembentukan objek dari suatu kelas

  • Destructor − mengacu pada jenis fungsi khusus yang akan dipanggil secara otomatis setiap kali objek dihapus atau keluar dari ruang lingkup

Mendefinisikan Kelas PHP

Bentuk umum untuk mendefinisikan kelas baru di PHP adalah sebagai berikut −

Berikut adalah deskripsi dari setiap baris −

  • Class form khusus, diikuti dengan nama class yang ingin Anda definisikan

  • Satu set kurung kurawal yang melampirkan sejumlah deklarasi variabel dan definisi fungsi

  • Deklarasi variabel dimulai dengan bentuk khusus var, yang diikuti dengan nama variabel konvensional $;

  • Definisi fungsi sangat mirip dengan fungsi PHP mandiri tetapi bersifat lokal untuk kelas dan akan digunakan untuk menyetel dan mengakses data objek

Contoh

Berikut adalah contoh yang mendefinisikan kelas tipe Buku −

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_

Variabel $this adalah variabel khusus dan mengacu pada objek yang sama yaitu. diri

Membuat Objek di PHP

Setelah Anda menentukan kelas Anda, maka Anda dapat membuat objek sebanyak yang Anda suka dari jenis kelas itu. Berikut adalah contoh cara membuat objek menggunakan operator baru

$physics = new Books;
$maths = new Books;
$chemistry = new Books;

Di sini kita telah membuat tiga objek dan objek-objek ini tidak bergantung satu sama lain dan mereka akan memiliki keberadaannya secara terpisah. Selanjutnya kita akan melihat bagaimana mengakses fungsi anggota dan memproses variabel anggota

Memanggil Fungsi Anggota

Setelah membuat objek, Anda akan dapat memanggil fungsi anggota yang terkait dengan objek tersebut. Satu fungsi anggota akan dapat memproses variabel anggota dari objek terkait saja

Contoh berikut menunjukkan cara mengatur judul dan harga untuk tiga buku dengan memanggil fungsi anggota

$physics->setTitle( "Physics for High School" );
$chemistry->setTitle( "Advanced Chemistry" );
$maths->setTitle( "Algebra" );

$physics->setPrice( 10 );
$chemistry->setPrice( 15 );
$maths->setPrice( 7 );

Sekarang Anda memanggil fungsi anggota lain untuk mendapatkan nilai yang ditetapkan dalam contoh di atas -

$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();
_

Ini akan menghasilkan hasil berikut -

Physics for High School
Advanced Chemistry
Algebra
10
15
7

Fungsi Konstruktor

Fungsi Konstruktor adalah jenis fungsi khusus yang dipanggil secara otomatis setiap kali objek dibuat. Jadi kami memanfaatkan sepenuhnya perilaku ini, dengan menginisialisasi banyak hal melalui fungsi konstruktor

PHP menyediakan fungsi khusus yang disebut __construct() untuk mendefinisikan konstruktor. Anda dapat memberikan argumen sebanyak yang Anda suka ke dalam fungsi konstruktor

Contoh berikut akan membuat satu konstruktor untuk kelas Buku dan akan menginisialisasi harga dan judul buku pada saat pembuatan objek

function __construct( $par1, $par2 ) {
   $this->title = $par1;
   $this->price = $par2;
}
_

Sekarang kita tidak perlu memanggil fungsi set secara terpisah untuk mengatur harga dan judul. Kita dapat menginisialisasi dua variabel anggota ini pada saat pembuatan objek saja. Periksa contoh berikut di bawah ini −

$physics = new Books( "Physics for High School", 10 );
$maths = new Books ( "Advanced Chemistry", 15 );
$chemistry = new Books ("Algebra", 7 );

/* Get those set values */
$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();

$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();

Ini akan menghasilkan hasil berikut -

  Physics for High School
  Advanced Chemistry
  Algebra
  10
  15
  7
_

Penghancur

Seperti fungsi konstruktor, Anda dapat mendefinisikan fungsi destruktor menggunakan fungsi __destruct(). Anda dapat melepaskan semua sumber daya di dalam destruktor

Warisan

Definisi kelas PHP secara opsional dapat mewarisi dari definisi kelas induk dengan menggunakan klausa extends. Sintaksnya adalah sebagai berikut −

class Child extends Parent {
   
}
_

Efek pewarisan adalah bahwa kelas anak (atau subkelas atau kelas turunan) memiliki karakteristik sebagai berikut −

  • Secara otomatis memiliki semua deklarasi variabel anggota dari kelas induk

  • Secara otomatis memiliki semua fungsi anggota yang sama dengan induknya, yang (secara default) akan bekerja dengan cara yang sama seperti yang dilakukan fungsi tersebut pada induknya

Contoh berikut mewarisi kelas Buku dan menambahkan lebih banyak fungsi berdasarkan persyaratan

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_0

Sekarang terlepas dari fungsi yang diwariskan, Novel kelas menyimpan dua fungsi anggota tambahan

Penimpaan Fungsi

Definisi fungsi di kelas anak menggantikan definisi dengan nama yang sama di kelas induk. Di kelas anak, kita bisa memodifikasi definisi fungsi yang diwarisi dari kelas induk

Dalam contoh berikut fungsi getPrice dan getTitle diganti untuk mengembalikan beberapa nilai

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_1

Anggota Publik

Kecuali jika Anda menentukan sebaliknya, properti dan metode kelas bersifat publik. Dengan kata lain, mereka dapat diakses dalam tiga kemungkinan situasi −

  • Dari luar kelas yang dideklarasikan

  • Dari dalam kelas di mana ia dideklarasikan

  • Dari dalam kelas lain yang mengimplementasikan kelas yang dideklarasikan

Sampai sekarang kita telah melihat semua anggota sebagai anggota publik. Jika Anda ingin membatasi aksesibilitas anggota kelas maka Anda mendefinisikan anggota kelas sebagai pribadi atau dilindungi

Anggota pribadi

Dengan menunjuk anggota pribadi, Anda membatasi aksesibilitasnya ke kelas yang dideklarasikan. Anggota pribadi tidak dapat dirujuk dari kelas yang mewarisi kelas yang dideklarasikan dan tidak dapat diakses dari luar kelas

Anggota kelas dapat dijadikan pribadi dengan menggunakan kata kunci pribadi di depan anggota

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_2

Ketika kelas MyClass diwariskan oleh kelas lain menggunakan extends, myPublicFunction() akan terlihat, begitu juga dengan $driver. Kelas perluasan tidak akan mengetahui atau mengakses myPrivateFunction dan $car, karena keduanya dinyatakan pribadi

Anggota yang dilindungi

Properti atau metode yang dilindungi dapat diakses di kelas tempat ia dideklarasikan, serta di kelas yang memperluas kelas tersebut. Anggota yang dilindungi tidak tersedia di luar kedua jenis kelas tersebut. Anggota kelas dapat dilindungi dengan menggunakan kata kunci dilindungi di depan anggota

Ini adalah versi berbeda dari MyClass −

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_3

Antarmuka

Antarmuka didefinisikan untuk memberikan nama fungsi umum ke pelaksana. Pelaksana yang berbeda dapat mengimplementasikan antarmuka tersebut sesuai dengan kebutuhan mereka. Bisa dibilang, interface adalah kerangka yang diimplementasikan oleh developer

Pada PHP5, dimungkinkan untuk mendefinisikan antarmuka, seperti ini −

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_4

Kemudian, jika kelas lain mengimplementasikan antarmuka itu, seperti ini -

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_5

Konstanta

Konstanta agak mirip dengan variabel, karena memiliki nilai, tetapi sebenarnya lebih seperti fungsi karena konstanta tidak dapat diubah. Setelah Anda mendeklarasikan sebuah konstanta, itu tidak berubah

Mendeklarasikan satu konstanta itu mudah, seperti yang dilakukan dalam versi MyClass − ini

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_6

Di kelas ini, requiredMargin adalah konstanta. Itu dideklarasikan dengan kata kunci const, dan dalam keadaan apa pun tidak dapat diubah menjadi apa pun selain 1. 7. Perhatikan bahwa nama konstanta tidak memiliki awalan $, seperti halnya nama variabel

Kelas Abstrak

Kelas abstrak adalah salah satu yang tidak bisa dipakai, hanya diwariskan. Anda mendeklarasikan kelas abstrak dengan kata kunci abstrak, seperti ini −

Saat mewarisi dari kelas abstrak, semua metode yang ditandai abstrak dalam deklarasi kelas induk harus ditentukan oleh anaknya;

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_7

Perhatikan bahwa definisi fungsi di dalam kelas abstrak juga harus diawali dengan kata kunci abstrak. Tidak sah memiliki definisi fungsi abstrak di dalam kelas non-abstrak

Kata Kunci Statis

Mendeklarasikan anggota kelas atau metode sebagai statis membuat mereka dapat diakses tanpa memerlukan instantiasi kelas. Anggota yang dideklarasikan sebagai statis tidak dapat diakses dengan objek kelas yang dipakai (walaupun metode statis bisa)

Coba contoh berikut -

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_8

Kata Kunci Terakhir

PHP 5 memperkenalkan kata kunci final, yang mencegah kelas anak dari mengesampingkan metode dengan mengawali definisi dengan final. Jika kelas itu sendiri sedang didefinisikan final maka tidak dapat diperpanjang

Contoh berikut menghasilkan kesalahan Fatal. Tidak dapat mengesampingkan metode final BaseClass. moreTesting()

price = $par;
      }
      
      function getPrice(){
         echo $this->price ."
"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."
"; } } ?>
_9

Memanggil konstruktor induk

Alih-alih menulis konstruktor yang sama sekali baru untuk subkelas, mari kita tulis dengan memanggil konstruktor induk secara eksplisit dan kemudian melakukan apa pun yang diperlukan sebagai tambahan untuk pembuatan subkelas. Berikut adalah contoh sederhana −

$physics = new Books;
$maths = new Books;
$chemistry = new Books;
0

Dalam contoh ini, kami memiliki kelas induk (Nama), yang memiliki konstruktor dua argumen, dan subkelas (NameSub1), yang memiliki konstruktor tiga argumen. Konstruktor NameSub1 berfungsi dengan memanggil konstruktor induknya secara eksplisit menggunakan. sintaks (menyerahkan dua argumennya) dan kemudian menyetel bidang tambahan. Demikian pula, NameSub1 mendefinisikan fungsi non konstruktor toString() dalam hal fungsi induk yang ditimpa

CATATAN − Konstruktor dapat didefinisikan dengan nama yang sama dengan nama kelas. Ini didefinisikan dalam contoh di atas

Bagaimana Anda membuat objek baru di PHP?

Untuk membuat objek baru di PHP, Anda harus menggunakan kata kunci new .

Bagaimana cara membuat objek di PHP dengan contoh?

Berikut adalah contoh cara membuat objek menggunakan operator baru. Buku kelas { // Anggota kelas Buku } // Membuat tiga objek Buku $fisika = Buku baru; . Setelah membuat objek kita, kita dapat memanggil fungsi anggota yang terkait dengan objek itu. Member Functions: After creating our objects, we can call member functions related to that object.

Bagaimana Anda membuat kelas baru dari suatu objek?

Untuk membuat objek Main , tentukan nama kelas, diikuti dengan nama objek, dan gunakan kata kunci baru. .
Contoh. Buat objek bernama " myObj " dan cetak nilai x. kelas publik Utama { int x = 5; . .
Contoh. .
Kedua. Jawa

Bagaimana cara membuat kelas di PHP?

Aspek Utama Kelas PHP .
Tentukan kelas dengan kata kunci "kelas" diikuti dengan nama kelas
Tentukan metode konstruktor menggunakan “__construct” diikuti dengan argumen. Objek kelas kemudian dapat dipakai menggunakan "NamaKelas baru (argument_list)"
Tentukan variabel kelas. .
Tentukan metode menggunakan kata kunci "fungsi".