Desdulianto
5
"Budi"
true
[1,2,3]
5+5
"Hello " . $nama"
array_sum([1,2,3])
null
new SomeClass()
Berdasarkan banyak operan: unary, binary, ternary
Eksekusi operator mengikuti aturan precedence
Kesalahan yang sering terjadi, menggunakan + untuk menggabungkan text (text concatenation). PHP menggunakan operator .
+
.
echo "Hello " . $nama;
if
else
elseif
else if
logical_expression ? true_value : false_value
switch
case
default
break
match
for
foreach
while
do-while
continue
return
require
include
require_once
include_once
goto
Mendefinisikan fungsi
function nama_fungsi($param1, $param2, ... $paramN) { // function body }
Memanggil fungsi
nama_fungsi(1, 2, 3, 4, 5);
keyword return untuk mengakhiri dan mengembalikan nilai
Parameter, nama untuk variable input pada definisi fungsi
Argument, nilai yang dikirimkan sebagai parameter pada saat pemanggilan fungsi mengikuti urutan pada saat definisi
function add($a, $b) { // $a & $b adalah parameter return $a + b; } add(10, 5); // 10 dan 5 adalah argumen yang dikirim ke parameter $a dan $b
Mengirimkan argument sebagai reference
function add_10_in_place(&$a) { $a += 10; } $a = 10; add_10_in_place($a); // $a sekarang menjadi 20
Parameter bersifat optional, jika tidak di-assign, parameter akan berisi default value
function hello($name = 'World') { return "Hello " . $name; } hello(); // Hello World hello("Budi"); // Hello Budi
Didefinisikan setelah parameter mandatory (tanpa default value)
Parameter diperlakukan sebagai array
function sum(...$a) { $sum = 0; foreach ($a as $i) { $sum += $i } return $sum; } sum(); // 0 sum(1,2,3); // 1 + 2 + 3
Parameter dapat di-assign mengikuti nama parameter (tidak perlu mengikuti urutan definisi)
Sejak PHP versi 8
function greet($greeting, $name) { return "Hello $name, $greeting"; } hello('Selamat pagi', 'Budi'); hello(name: 'Budi', greeting: 'Selamat pagi');
Mendefinisikan fungsi tanpa di-assign dengan sebuah nama
Biasanya digunakan sebagai argument yang dikirim ke parameter callable
callable
Disebut juga dengan nama closure
$hello = function hello($name) { return "Hello, $name"; } $hello('Budi'); // Hello Budi
Variable di luar scope di-inject keyword use
use
$name = 'Budi'; $a = function hello() use($name) { // inject $name return "Hello, $name"; } $a();
Anonymous function yang isinya berupa expression dapat ditulis dengan notasi arrow (arrow function)
$add = fn($a, $b) => $a + $b; $add(1, 5);
Arrow function akan langsung meng-capture variable di-luar scope tanpa perlu diinject dengan keyword use