Menu
CoddyTech

Method & property static

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan PHP di Coddy. Pelajaran 17 dari 91.

Sama seperti property dapat bersifat static, method juga dapat menjadi bagian dari class itu sendiri, bukan dari masing-masing object. Kamu dapat memanggil method static langsung pada class, tanpa perlu membuat instance terlebih dahulu.

Kamu mendeklarasikan method statis menggunakan kata kunci static dan memanggilnya dengan nama class serta operator :::

<?php
class MathHelper {
    public static function add($a, $b) {
        return $a + $b;
    }
    
    public static function multiply($a, $b) {
        return $a * $b;
    }
}

echo MathHelper::add(5, 3) . "\n";
echo MathHelper::multiply(4, 2);

Output:

8
8

Static method bekerja dengan baik bersama property static. Pola yang umum adalah menggunakan method static untuk mengelola data class yang digunakan bersama:

<?php
class Counter {
    private static $count = 0;
    
    public static function increment() {
        self::$count++;
    }
    
    public static function getCount() {
        return self::$count;
    }
}

Counter::increment();
Counter::increment();
echo Counter::getCount();

Keluaran:

2

Perhatikan bahwa method statis tidak dapat menggunakan $this karena tidak ada instance object. Method tersebut hanya dapat mengakses property statis dan method statis lainnya menggunakan self::.

Inti Penting: Method static berguna untuk fungsi utilitas yang tidak memerlukan state object, atau untuk mengelola data di tingkat class. Method ini menyediakan fungsionalitas tanpa memerlukan pembuatan instance object.

challenge icon

Tantangan

Mudah

Mari buat sistem generator ID yang menggunakan method dan property static untuk membuat ID unik tanpa perlu membuat instance object.

Kamu akan membuat dua file untuk mengatur kodemu:

  • IdGenerator.php: Definisikan class IdGenerator yang mengelola pembuatan ID unik hanya dengan menggunakan anggota static. Class ini harus memiliki property static privat $lastId yang dimulai dari 0 dan property static privat $prefix yang diatur ke "ID". Buat method static generate() yang menambah ID terakhir dan mengembalikan string berformat yang menggabungkan prefix dan ID baru (seperti "ID1", "ID2", dan seterusnya). Tambahkan method static setPrefix($newPrefix) untuk mengubah prefix, serta method static getLastId() yang mengembalikan nilai $lastId saat ini.
  • main.php: Sertakan file class IdGenerator. Buat dua ID menggunakan prefix bawaan dan cetak masing-masing pada baris tersendiri. Lalu, ubah prefix menjadi "USER" menggunakan method static, buat dua ID lagi, dan cetak masing-masing. Terakhir, cetak nomor ID terakhir dengan memanggil method static yang sesuai.

Ingat, method static dipanggil langsung pada class menggunakan ClassName::methodName(), dan di dalam class, kamu mengakses property static dengan self::$propertyName. Karena tidak ada instance object, kamu tidak dapat menggunakan $this dalam method static.

Output-mu harus menunjukkan urutan ID dengan prefix yang berbeda, untuk menunjukkan bagaimana property static mempertahankan nilainya di beberapa pemanggilan method.

Coba sendiri

<?php

// Sertakan file class IdGenerator
require_once 'IdGenerator.php';

// TODO: Buat dua ID dengan prefiks bawaan dan cetak masing-masing pada baris terpisah

// TODO: Ubah prefiks menjadi "USER" menggunakan method statis

// TODO: Buat dua ID lagi dan cetak masing-masing pada baris terpisah

// TODO: Cetak nomor ID terakhir menggunakan method statis yang sesuai

?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler PHP online