Function pada PHP
Function atau fungsi pada program digunakan untuk mengeksekusi sejumlah perintah dengan satu panggilan.
function hello() {
echo 'Hello world!";
}
Di atas adalah contoh deklarasi suatu fungsi untuk menampilkan teks hello world. Fungsi di atas belum melakukan apa-apa sampai dipanggil. Untuk memanggil fungsi, cukup ketik nama fungsi tersebut.
hello();
Output:
Hello world!
Return pada fungsi PHP
Suatu fungsi dapat memiliki suatu nilai seperti suatu variabel bila menggunakan statement return.
function tanggalSQL() {
$now = time();
return date('Y-m-d', $now);
}
Fungsi di atas mengembalikan tanggal hari ini pada komputer dengan format ISO yang dapat langsung diinsert ke database. Untuk menggunakan fungsi seperti di atas, dapat langsung echo tanggalSQL(); atau dimasukkan ke variabel seperti berikut:
$today = tanggalSQL();
$perintah = "INSERT INTO catatan VALUES ('hari ini belajar fungsi', '$today');"
echo $perintah;
output:
INSERT INTO catatan VALUES ('hari ini belajar fungsi', '2016-06-25');
Fungsi PHP dengan parameter
Argumen atau parameter adalah variabel yang dioper ke dalam fungsi. Fungsi dengan parameter sangat fleksibel dalam pemakaiannya. Sehingga kebanyakan fungsi selalu memiliki argumen. Contoh:
function tanggalSQL($timestamp) {
return date('Y-m-d', $timestamp);
}
function kemarin() {
return tanggalSQL(time()-3600*24));
}
Maka fungsi di atas dapat digunakan seperti:
$besok = tanggalSQL(time() + 3600*24); $kemarin = kemarin(); echo "Tanggal kemarin: $kemarin, besok: $besok. Hari ini tanggal berapa?";
Output:
Tanggal kemarin: 2016-04-24, besok: 2016-04-25. Hari ini tanggal berapa?
Fungsi PHP dengan parameter opsional
Seandainya terkadang kita ingin menggunakan fungsi tanggalSQL() tanpa parameter, dan terkadang dengan parameter, maka kita dapat membuatnya opsional dengan cara:
function tanggalSQL($timestamp='') {
if ($timestamp == '') $timestamp = time();
return date('Y-m-d',$timestamp);
}
echo 'Hari ini tanggal '.tanggalSQL();
Output:
Hari ini tanggal 2016-06-25
Fungsi PHP dengan multi parameter
function initDB($db, $user, $pass, $port=3306) {
$host = 'localhost';
$pdo = new \PDO("mysql:host=$host;port=$port;dbname=$db;",$user,$pass,[
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ
]);
return $pdo;
}
Dengan fungsi di atas, kita dapat melakukan:
$db = initDB('test','root','');
$db->query('CREATE TABLE IF NOT EXISTS test (id INT PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(100)) engine=innodb;');
$stmt = $db->query('SELECT COUNT(*) FROM test');
$jumbar = $stmt->fetch(\PDO::FETCH_NUM)[0];
$db->query("INSERT INTO test VALUES (NULL,'nama".++$jumbar."')");
$db->query("INSERT INTO test VALUES (NULL,'nama".++$jumbar."')");
$db->query("INSERT INTO test VALUES (NULL,'nama".++$jumbar."')");
$stmt = $db->query('SELECT * FROM test');
$hasil = $stmt->fetchAll();
echo "<pre>".print_r($hasil,true)."</pre>";
Output:
Array
(
[0] => stdClass Object
(
[id] => 1
[nama] => nama1
)
[1] => stdClass Object
(
[id] => 2
[nama] => nama2
)
[2] => stdClass Object
(
[id] => 3
[nama] => nama3
)
)
Variable scope pada fungsi PHP
Pada PHP, variabel yang dideklarasi di luar fungsi, tidak dikenal di dalam fungsi. Contoh:
$kalimat = "Hari ini belajar fungsi PHP";
function testing() {
echo "Isi kalimat: $kalimat";
}
testing();
Akan mengakibatkan warning, dan $kalimat akan kosong.
Notice: Undefined variable: kalimat in D:\webcodes\SSBIN\public\test.php on line 7 Isi kalimat:
Agar variabel tersebut dapat dibaca, ada dua pilihan, yaitu menggunakan keyword global:
$kalimat = "Hari ini belajar fungsi PHP";
function testing() { global $kalimat;
echo "Isi kalimat: $kalimat";
}
testing();
Atau menggunakan variabel $GLOBALS
$kalimat = "Hari ini belajar fungsi PHP";
function testing() { global $kalimat;
echo "Isi kalimat: ".$GLOBALS['kalimat'];
}
testing();
Output dari kedua potongan program di atas:
Isi kalimat: Hari ini belajar fungsi PHP

