Home » PHP » OOP PHP : Metode Statis – Kode dan Contohnya

OOP PHP : Metode Statis – Kode dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

PHP – Metode Statis

Metode statis dapat dipanggil secara langsung – tanpa membuat instance kelas terlebih dahulu.

Metode statis dideklarasikan dengan kata kunci static:

Sintaks

<?php
class ClassName {
  public static function staticMethod() {
    echo "Hello World!";
  }
}
?>

Untuk mengakses metode statis gunakan nama kelas, titik dua ganda (::) dan nama metode:

Sintaks

ClassName::staticMethod();

Mari kita lihat contohnya:

Contoh :

<?php
class greeting {
  public static function welcome() {
    echo "Hello World!";
  }
}

// Panggil metode statis
greeting::welcome();
?>
  
  // Output : Hello World!

Penjelasan Kode

Di sini, kita mendeklarasikan metode statis: welcome(). Kemudian, kita memanggil metode statis dengan menggunakan nama kelas, titik dua ganda (::) dan nama metode (tanpa membuat instance kelas terlebih dahulu).

PHP – Materi Metode Statis Lanjutan

Kelas dapat memiliki metode statis dan non-statis. Metode statis dapat diakses dari metode di kelas yang sama menggunakan kata kunci self dan titik dua ganda (::):

Contoh :

<?php
class greeting {
  public static function welcome() {
    echo "Hello World!";
  }

  public function __construct() {
    self::welcome();
  }
}

new greeting();
?>
  
  // Output : Hello World!

Metode statis juga dapat dipanggil dari metode di kelas lain. Untuk melakukan ini, metode statis harus bersifat public:

Contoh :

<?php
class greeting {
  public static function welcome() {
    echo "Hello World!";
  }
}

class SomeOtherClass {
  public function message() {
    greeting::welcome();
  }
}
?>

Untuk memanggil metode statis dari kelas anak, gunakan kata kunci parent di dalam kelas anak. Di sini, metode statis dapat bersifat public atau protected.

Contoh :

<?php
class domain {
  protected static function getWebsiteName() {
    return "dosenit.com";
  }
}

class domainW3 extends domain {
  public $websiteName;
  public function __construct() {
    $this->websiteName = parent::getWebsiteName();
  }
}

$domainW3 = new dosenit;
echo $domainW3 -> websiteName;
?>

  //Output : dosenit.com

You may also like