Selamat datang di bagian ke-67 dari seri tutorial pemrograman PHP Zero to Hero kita! Di bagian ini, kita akan menjelajahi SplFixedArray, sebuah kelas dalam Standard PHP Library (SPL) yang menyediakan implementasi array dengan ukuran tetap. Array jenis ini sangat berguna ketika Anda membutuhkan kinerja tinggi dan tahu persis ukuran array Anda di awal.
Prasyarat: Anda harus memiliki pengetahuan dasar tentang array di PHP. Sangat disarankan untuk membaca bagian sebelumnya tentang 'PHP Generators - Lazy Evaluation untuk Efisiensi Memori' karena kedua konsep ini berhubungan dengan optimasi kinerja.
Bayangkan Anda membangun sebuah bangunan. Menggunakan array PHP biasa seperti menyewa ruang penyimpanan yang ukurannya bisa berubah-ubah. Ini fleksibel, tetapi bisa jadi kurang efisien jika Anda sudah tahu persis berapa banyak barang yang akan disimpan. SplFixedArray seperti membangun lemari khusus yang ukurannya pas dengan barang-barang Anda. Karena ukurannya sudah ditentukan, PHP dapat mengalokasikan memori dengan lebih efisien, menghasilkan kinerja yang lebih baik.
SplFixedArray adalah implementasi array dengan ukuran tetap. Setelah dibuat, ukurannya tidak dapat diubah. Ini membuatnya lebih cepat daripada array PHP standar untuk operasi tertentu, terutama ketika Anda bekerja dengan sejumlah besar data dan tahu ukuran array di muka.
Untuk membuat SplFixedArray, kita menggunakan konstruktor dan menentukan ukuran array.
<?php
$fixedArray = new SplFixedArray(10); // Membuat array dengan 10 elemen
var_dump($fixedArray);
?>
Kode di atas akan menghasilkan SplFixedArray dengan 10 elemen, semuanya diinisialisasi dengan NULL.
Anda dapat mengakses dan mengubah elemen menggunakan sintaks array biasa.
<?php
$fixedArray = new SplFixedArray(5);
$fixedArray[0] = "Apple";
$fixedArray[1] = "Banana";
$fixedArray[2] = "Cherry";
echo $fixedArray[1]; // Output: Banana
var_dump($fixedArray);
?>
Perhatikan bahwa indeks array dimulai dari 0.
Anda dapat menggunakan loop for atau foreach untuk melakukan iterasi melalui SplFixedArray.
<?php
$fixedArray = new SplFixedArray(3);
$fixedArray[0] = "Red";
$fixedArray[1] = "Green";
$fixedArray[2] = "Blue";
foreach ($fixedArray as $value) {
echo $value . " <br>";
}
// Atau, menggunakan for loop:
for ($i = 0; $i < $fixedArray->getSize(); $i++) {
echo $fixedArray[$i] . " <br>";
}
?>
SplFixedArray memiliki beberapa method berguna.
<?php
$fixedArray = new SplFixedArray(5);
// Mengatur ukuran array (tidak dapat diubah setelah diatur)
// $fixedArray->setSize(10); // Akan menghasilkan pengecualian jika array sudah diinisialisasi
// Mendapatkan ukuran array
echo $fixedArray->getSize(); // Output: 5
// Mengatur elemen pada indeks tertentu
$fixedArray->offsetSet(2, "Orange");
// Mendapatkan elemen pada indeks tertentu
echo $fixedArray->offsetGet(2); // Output: Orange
// Mengecek apakah indeks ada
var_dump($fixedArray->offsetExists(2)); // Output: bool(true)
var_dump($fixedArray->offsetExists(10)); // Output: bool(false)
// Menghapus elemen pada indeks tertentu (mengatur ke NULL)
$fixedArray->offsetUnset(2);
var_dump($fixedArray->offsetGet(2)); // Output: NULL
?>
SplFixedArray tidak dapat diubah ukurannya setelah dibuat. Mencoba melakukannya akan menghasilkan pengecualian.NULL. Pastikan untuk menginisialisasi elemen sebelum menggunakannya.Buatlah sebuah fungsi yang menerima dua SplFixedArray sebagai input dan mengembalikan SplFixedArray baru yang berisi penjumlahan elemen-elemen pada indeks yang sama. Pastikan kedua array memiliki ukuran yang sama.