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