
PHP, singkatan dari Hypertext Preprocessor, telah menjadi salah satu bahasa pemrograman web yang paling populer dan paling banyak digunakan di seluruh dunia. Dengan kemampuannya yang kuat dalam memanipulasi konten web secara dinamis, PHP telah menjadi tulang punggung banyak situs web yang kita kunjungi setiap hari. Untuk membantu pengembang dalam menguasai bahasa ini dengan cepat, banyak sumber daya telah dikembangkan, termasuk lembar contekan (cheat sheet) PHP yang disusun dengan rapi.
Di artikel ini, kita akan membahas dan menganalisis cheat sheet PHP yang diperbarui hingga versi PHP 8.1. Cheat sheet ini mencakup berbagai topik, mulai dari dasar-dasar PHP hingga konsep yang lebih kompleks seperti pemrograman berorientasi objek (OOP), manajemen file, dan bahkan fitur-fitur terbaru yang diperkenalkan dalam PHP 8.
Mengenal PHP
Cheat sheet ini dimulai dengan pengenalan singkat tentang cara menggunakan PHP, termasuk menjalankan server lokal, komentar, dan konvensi penamaan. Ini merupakan langkah awal yang penting bagi pemula untuk memahami dasar-dasar bahasa pemrograman PHP.
Variabel dan Tipe Data
Berikutnya, cheat sheet membahas deklarasi variabel dan tipe data dalam PHP, termasuk tipe data dasar seperti string, boolean, integer, dan float, serta tipe data yang lebih kompleks seperti array dan konstanta. Pemahaman yang kuat tentang tipe data merupakan fondasi yang penting dalam pengembangan aplikasi PHP yang kuat dan andal.
String Operations
Operasi string adalah bagian penting dari pengembangan web, dan cheat sheet ini memberikan panduan tentang cara memanipulasi string, termasuk penggabungan, pencarian, penggantian, dan transformasi teks.
Kontrol Aliran dan Kondisional
Cheat sheet ini juga membahas struktur kontrol aliran seperti pernyataan if, else, dan switch, serta operator logika dan perbandingan yang digunakan dalam ekspresi kondisional.
Loop dan Iterasi
Bagian ini membahas penggunaan loop seperti for, while, dan do-while dalam PHP, yang memungkinkan pengembang untuk melakukan iterasi melalui serangkaian nilai atau elemen dalam sebuah array.
Arrays dan Operasinya
Arrays adalah struktur data yang sangat penting dalam pengembangan PHP, dan cheat sheet ini memberikan penjelasan tentang cara mendeklarasikan, mengakses, dan memanipulasi array, termasuk operasi seperti penggabungan, penghapusan, dan transformasi.
Functions dan OOP
Cheat sheet ini juga membahas deklarasi dan pemanggilan fungsi dalam PHP, serta konsep pemrograman berorientasi objek (OOP) seperti kelas, properti, metode, pewarisan, antarmuka, dan trait.
Error Handling
Pengelolaan kesalahan adalah bagian penting dari pengembangan aplikasi yang kuat, dan cheat sheet ini menyajikan cara menimbulkan dan menangani kesalahan dalam PHP.
Fitur Terbaru dalam PHP 8
Terakhir, tetapi tidak kalah pentingnya, cheat sheet ini juga mencakup beberapa fitur terbaru yang diperkenalkan dalam PHP 8, seperti konstruktor properti, ekspresi match, dan peningkatan lainnya yang memungkinkan pengembang untuk menulis kode yang lebih efisien dan bersih.
Dengan membahas berbagai topik ini secara rinci, cheat sheet PHP ini menjadi sumber daya yang berharga bagi pengembang dari berbagai tingkatan pengalaman, mulai dari pemula hingga profesional. Dengan memahami dan menguasai konsep-konsep yang tercakup dalam cheat sheet ini, pengembang dapat meningkatkan produktivitas mereka dan mengembangkan aplikasi PHP yang lebih baik dan lebih andal.
Soal dan Jawaban Pranata Komputer – Tumbas.in
<?php
// PHP cheat sheet (updated to PHP 8.1)
// php
// laravel
// beginners
// Follow me!: Follow @EricTheCoder_
// Ini adalah lembar contekan saya yang saya buat selama perjalanan pembelajaran saya. Jika Anda memiliki rekomendasi (penambahan/pengurangan) beri tahu saya.
// PHP local server
// php -S localhost:3000
// Komentar
// komentar satu baris
/*
Ini adalah blok komentar yang melintasi beberapa baris
yang melintasi beberapa
baris
*/
// Konvensi penamaan
// PHP tag pembuka/penutup
<?php
echo "Hello World";
?>
// jika tidak ada tag penutup, sisa file akan dianggap sebagai PHP
// Singkatan sintaks untuk echo PHP
<?= "Hello World" ?>
//Aktifkan typing ketat (baris pertama file PHP Anda)
declare(strict_types=1);
// Sertakan file PHP
require 'app/Product.php';
// Buat namespace
namespace App;
// Gunakan namespace
use App\Product;
$firstName = 'Mike'; // camelCase
function updateProduct() // camelCase
class ProductItem // StudlyCaps
const ACCESS_KEY = '123abc'; // huruf besar dengan pemisah garis bawah
// Output & Input
echo 'Hello World';
// Output debug
var_dump($names);
print_r($products);
// Input dari konsol
$name = readline('Siapa nama Anda : ');
// Deklarasi Variabel
$name = 'Mike'; // string
$isActive = true; // boolean
$number = 25; // integer
$amount = 99.95; // float
$fruits = ['orange', 'apple', 'banana']; // array
const MAX_USERS = 50; // konstanta
define('MAX_USERS', 50); // konstanta
// Menetapkan 'by reference' dengan kata kunci &
$name_2 = &$name_1;
// Konversi tipe
$age = (int)readline('Umur Anda: ');
echo 'Umur Anda ' . (string)$age;
echo gettype($age); // int
echo is_int($age); // true
echo is_float(12.5); // true
echo is_string($name); // true
// String
// String dapat menggunakan tanda kutip tunggal
$name = 'Mike';
// atau tanda kutip ganda
$name = "Mike";
// String tanda kutip ganda dapat melarikan karakter \n = baris baru \t = tab \\ = backslash
echo "Hello Mike\nHello David";
// String tanda kutip ganda dapat interpolasi
echo "Hello $name";
// string concat
echo 'Hello ' . $name;
// panjang string
echo strlen($name);
// Hapus spasi sebelum dan sesudah
echo trim($text);
// Ubah menjadi huruf kecil / besar
echo strtolower($email);
echo strtoupper($name);
// Mengonversi karakter pertama menjadi huruf besar
echo ucfirst($name); // 'Mike'
// Ganti teks a dengan teks b dalam $text
echo str_replace('a', 'b', $text);
// String Contains (PHP 8)
echo str_contains($name, 'ke'); // true
// Temukan posisi numerik dari kemunculan pertama
$pos = strpos($name, 'k'); // 2
// Mengembalikan bagian dari string (offset / length)
echo substr($name, 0, $pos); // Mi
// Angka
// Penugasan penambahan pintasan
$value = 10;
$value++; // 11
// atau
$value += 1; // 11
// Penugasan pengurangan pintasan
$value = 10;
$value--; // 9
// atau
$value -= 1; // 9
// Periksa jika numerik
echo is_numeric('59.99'); // true
// Bulatkan sebuah angka
echo round(0.80); // returns 1
// Bulatkan sebuah angka dengan presisi
echo round(1.49356, 2); // returns 1.49
// Angka acak
echo(rand(10, 100)); // 89
// Kondisional
// If / elseif / else
if ($condition == 10) {
echo 'kondisi 10';
} elseif ($condition == 5) {
echo 'kondisi 5';
} else {
echo 'semua kondisi lainnya';
}
// Dan kondisi = &&
if ($condition === 10 && $condition2 === 5) {
echo '10 dan 5';
}
// Atau kondisi = ||
if ($condition === 10 || $condition2 === 5) {
echo '10 atau 5';
}
// Satu baris
if ($isActive) return true;
// Cek null
if (is_null($name)) {
// lakukan sesuatu...
}
// Operasi perbandingan
// == // sama tanpa pemeriksaan tipe
// === // sama dengan pemeriksaan tipe
// != // tidak sama
// || // atau
// && // dan
// > // lebih besar dari
// < // kurang dari
// Operator ternary (benar: salah)
echo $isValid ? 'pengguna valid' : 'pengguna tidak valid';
// Operator Null Coalesce
echo $name ?? 'Mike'; // output 'Mike' jika $name adalah null
// Penugasan Null Coalesce
$name ??= 'Mike';
// Operator Null Safe (PHP 8) akan mengembalikan null jika salah satu ? adalah null
echo $user?->profile?->activate();
// Null Safe + Null Coalesce (jika null akan mengembalikan 'Tidak berlaku')
echo $user?->profile?->activate() ?? 'Tidak berlaku';
// Operator Spaceship mengembalikan -1 0 1
$names = ['Mike', 'Paul', 'John'];
usort($names, function($a, $b) {
return $a <=> $b;
});
// ['John', 'Mike', 'Paul']
// Mengembalikan false saat dikonversi sebagai boolean
// false, 0, 0.0, null, unset, '0', '', []
// Bandingkan variabel yang sama dengan beberapa nilai
switch ($color) {
case 'red':
echo 'Warnanya merah';
break;
case 'yellow':
echo 'Warnanya kuning';
break;
case 'blue':
echo 'Warnanya biru';
break;
default:
echo 'Warnanya tidak diketahui';
}
// Ekspresi Cocok (PHP 8)
$type = match($color) {
'red' => 'bahaya',
'yellow', 'orange' => 'peringatan',
'green' => 'sukses',
default => 'Tidak diketahui'
};
// Periksa apakah variabel dideklarasikan
isset($color['red']); // true
// Loop dan Iterasi
// for loop
for ($i = 0; $i < 20; $i++) {
echo "nilai i = " . i;
}
// while loop
$number = 1;
while ($number < 10) {
echo 'nilai : ' . $number ;
$number += 1;
}
// do while
$number = 1;
do {
echo 'nilai : ' . $number ;
$number += 1;
} while ($number < 10);
// foreach dengan break / continue contoh
$values = ['one', 'two', 'three'];
foreach ($values as $value) {
if ($value === 'two') {
break; // keluar dari loop
} elseif ($value === 'three') {
continue; // iterasi loop berikutnya
}
}
// Arrays
// Deklarasi Array dapat berisi jenis apa pun
$example = ['Mike', 50.2, true, ['10', '20']];
// Deklarasi Array
$names = ['Mike', 'Peter', 'Shawn', 'John'];
// Akses langsung ke elemen tertentu
$name[1]; // output Peter
// Cara mengakses array dalam array
$example[3][1]; // 20
// Tambahkan elemen ke array
$names[] = 'Micheal';
// Penggabungan Array
$array3 = array_merge($array1, $array2);
// Gabung dengan operator penyebaran (juga berfungsi dengan array asosiatif)
$array3 = [...$array1, ...$array2];
// Array Concat dengan Spread Operator
$names = ['Mike', 'Peter', 'Paul'];
$people = ['John', ...$names]; // ['John', 'Mike', 'Peter', 'Paul']
// Hapus entri array:
unset($names['Peter']);
// Array ke string
echo implode(', ', $names); // output Mike, Shawn, John, Micheal
// String ke Array
echo explode(',', $text); // ['Mike', 'Shawn', 'John']
// loop untuk setiap entri array
foreach($names as $name) {
echo 'Halo ' . $name;
}
// Jumlah item dalam sebuah Array
echo count($names);
// Deklarasi array asosiatif (key => value):
$person = ['age' => 45, 'genre' => 'men'];
// Tambahkan ke array asosiatif:
$person['name'] = 'Mike';
// loop asosiatif array key => value:
foreach($names as $key => $value) {
echo $key . ' : ' . $value;
}
// Periksa apakah kunci tertentu ada
echo array_key_exists('age', $person);
// Kembalikan kunci
echo array_keys($person); // ['age', 'genre']
// Kembalikan nilai
echo array_values($person); // [45, 'men']
// Array filter (mengembalikan array yang difilter)
$filteredPeople = array_filter($people, function ($person) {
return $names->active;
});
// Array map (mengembalikan array transformasi):
$onlyNames = array_map(function($person) {
return ['name' => $person->name];
}, $people);
// Pencarian array asosiatif
$items = [
['id' => '100', 'name' => 'product 1'],
['id' => '200', 'name' => 'product 2'],
['id' => '300', 'name' => 'product 3'],
['id' => '400', 'name' => 'product 4'],
];
// mencari semua nilai dalam kolom 'name'
$found_key = array_search('product 3', array_column($items, 'name'));
// kembalikan 2
// Functions
// deklarasi fungsi
function name($firstName, $lastName = 'defaultvalue') {
return "$firstName $lastName";
}
// panggilan fungsi
name('Mike', 'Taylor');
// panggilan fungsi dengan parameter bernama (PHP 8)
name(firstName: 'Mike', lastName: 'Taylor'); // urutan dapat berubah
// variabel fungsi params
function name(...$params) {
return $params[0] . " " . $params[1];
}
// Fungsi Penutup
Route::get('/', function () {
return view('welcome');
});
// Fungsi Penutup
Route::get('/', fn () => view('welcome'));
// parameter berjenis dan pengembalian yang diketik
function display(string $first, string $last) : string {
return "$first $last";
}
// Jenis disebutkan atau nol
function display(?string $name) {
// ...
}
// Jenis gabungan (atau)
function display(string|int $data) {
// ...
}
// Jenis perpotongan (dan)
function count_and_interate(Iterator&Countable $value) {
// ...
}
// Kembalikan tipe apa pun (mixed)
function logInfo(string $info) : mixed {
// ...
}
// Tanpa kembali (void)
function logInfo(string $info) : void {
// ...
}
// Enumerations
// Deklarasi
enum InvoiceStatus
{
case Sent;
case Paid;
case Cancelled;
}
// Enum kemudian dapat digunakan sebagai tipe
function printInvoiceStatus(InvoiceStatus $status)
{
print($status->name);
}
printInvoiceStatus(InvoiceStatus::Sent);
// Sent
// Enum dengan nilai kembali dan fungsi publik contoh
enum InvoiceStatus : int
{
case Sent = 0;
case Paid = 1;
case Cancelled = 2;
public function text() : string
{
return match ($this) {
self::Sent => 'Sent',
self::Paid => 'Paid',
self::Cancelled => 'Cancelled'
};
}
}
function getInvoiceStatus(InvoiceStatus $status)
{
print($status->text());
print($status->value);
}
getInvoiceStatus(InvoiceStatus::Paid);
// Paid1
// Berkas
// Dapatkan direktori saat ini
$current_dir = __DIR__;
// Periksa apakah file ada
if (file_exists('/posts/first.txt')) {
// lakukan sesuatu
}
// Baca konten file menjadi satu variabel
$post = file_get_contents($file);
// File read
$file = fopen("test.txt", "r");
// Output baris sampai EOF tercapai
while(! feof($file)) {
$line = fgets($file);
echo $line. "<br>";
}
fclose($file);
// File write (csv)
$file = fopen('export.csv', 'a');
$array = ['name' => 'Mike', 'age' => 45];
// Tulis kunci nama sebagai header csv
fputcsv($file, array_keys($array[0]));
// Tulis baris (format sebagai csv)
foreach ($array as $row) {
fputcsv($file, $row);
}
fclose($file);
// Kesalahan
// Lempar Error
if (someCondition) {
throw new Exception('Kesalahan format data');
}
// Tangkap Kesalahan
try {
$db->checkData($data);
} catch (Exception $e) {
echo $e->getMessage();
}
// OOP
// deklarasi kelas
class Person
{
}
// instansiasi objek
$person = new Person;
// properti kelas dan konstruktor
class Person
{
protected $firstName;
protected $lastName;
public function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
}
// Properti Konstruktor Properti (PHP 8)
class Person
{
public function __construct(protected $firstName, protected $lastName)
{
}
}
// Getter dan Setter
class Person
{
private $name;
public function setName($name){
if(!is_string($name)){
throw new Exception('$name harus berupa string!');
}
$this->name = $name;
}
public function getName(){
return $this->name;
}
}
// Properti Readonly (PHP 8.1)
class Person
{
public function __construct(
public readonly string $firstName,
public readonly string $lastName
) {
}
}
// konstruktor statis
public static function create(...$params) {
return new self($params);
}
$person = Person::create('Mike', 'Taylor');
// Metode Statis
class greeting {
public static function welcome() {
echo "Hello World!";
}
}
// Panggil metode statis
greeting::welcome();
// panggilan metode statis
class greeting {
public static function welcome() {
echo "Hello World!";
}
public function __construct() {
static::welcome();
}
}
new greeting();
// Konstanta statis
class Connection
{
const MAX_USER = 100;
}
echo Connection::MAX_USER; // 100
// pewarisan kelas
class Customer extends Person
{
public function name()
{
parent::name();
echo 'Override method';
}
}
// kata kunci self merujuk pada kelas saat ini (tidak dimodifikasi oleh keterlambatan pengikatan warisan seperti yang akan dilakukan static)
self::welcome();
// Antarmuka
interface Animal {
public function makeSound();
}
class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}
$animal = new Cat();
$animal->makeSound();
// Trait (mix-in)
trait HelloWorld {
public function sayHello() {
echo 'Hello World!';
}
}
class Greetings {
use HelloWorld;
}
$object = new Greetings();
$object->sayHello();