-----
-
-
Pembolehubah Global PHP - Superglobals
Superglobals telah diperkenalkan dalam PHP 4.1.0, dan terbina dalam pembolehubah yang sentiasa ada dalam semua skop.
Pembolehubah Global PHP - Superglobals
Beberapa pembolehubah yang telah ditetapkan dalam PHP adalah "superglobals", yang bermaksud bahawa mereka sentiasa diakses tanpa mengira skop - dan anda boleh mengakses mereka dari mana-mana function, class atau file tanpa perlu melakukan apa-apa yang khusus.
Pembolehubah PHP Superglobal adalah:
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _FILES
- $ _ENV
- $ _COOKIE
- $ _SESSION
Bab ini akan menjelaskan beberapa superglobals, dan selebihnya akan diterangkan dalam bab seterusnya.
PHP $ GLOBAL
$GLOBALS adalah sejenis superglobal variable PHP yang digunakan untuk mengakses global variable dari mana-mana tempat dalam skrip PHP (juga dari dalam function atau method).
PHP menyimpan semua pembolehubah global dalam variable yang dipanggil $GLOBALS [index] di mana index itu mewakili nama sesuatu variable.
Contoh di bawah menunjukkan bagaimana untuk menggunakan $GLOBALS:
Contoh
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
Dalam contoh di atas, oleh kerana z berada di dalam array $GLOBALS, ia juga boleh diakses di luar function!
PHP $ _SERVER
$_SERVER memegang maklumat mengenai header, path, dan location skrip.
Contoh di bawah menunjukkan bagaimana untuk menggunakan beberapa elemen dalam $_SERVER:
Contoh
echo $_SERVER['PHP_SELF'];
echo "
";
echo $_SERVER['SERVER_NAME'];
echo "
";
echo $_SERVER['HTTP_HOST'];
echo "
";
echo $_SERVER['HTTP_REFERER'];
echo "
";
echo $_SERVER['HTTP_USER_AGENT'];
echo "
";
echo $_SERVER['SCRIPT_NAME'];
?>
Jadual berikut menyenaraikan elemen yang paling penting yang boleh dimasukkan ke dalam $_SERVER:
Element/Code
|
Description
|
$_SERVER['PHP_SELF']
|
Returns the filename of the currently executing script
|
$_SERVER['GATEWAY_INTERFACE']
|
Returns the version of the Common Gateway Interface (CGI) the server is using
|
$_SERVER['SERVER_ADDR']
|
Returns the IP address of the host server
|
$_SERVER['SERVER_NAME']
|
Returns the name of the host server (such as www.w3schools.com)
|
$_SERVER['SERVER_SOFTWARE']
|
Returns the server identification string (such as Apache/2.2.24)
|
$_SERVER['SERVER_PROTOCOL']
|
Returns the name and revision of the information protocol (such as HTTP/1.1)
|
$_SERVER['REQUEST_METHOD']
|
Returns the request method used to access the page (such as POST)
|
$_SERVER['REQUEST_TIME']
|
Returns the timestamp of the start of the request (such as 1377687496)
|
$_SERVER['QUERY_STRING']
|
Returns the query string if the page is accessed via a query string
|
$_SERVER['HTTP_ACCEPT']
|
Returns the Accept header from the current request
|
$_SERVER['HTTP_ACCEPT_CHARSET']
|
Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1)
|
$_SERVER['HTTP_HOST']
|
Returns the Host header from the current request
|
$_SERVER['HTTP_REFERER']
|
Returns the complete URL of the current page (not reliable because not all user-agents support it)
|
$_SERVER['HTTPS']
|
Is the script queried through a secure HTTP protocol
|
$_SERVER['REMOTE_ADDR']
|
Returns the IP address from where the user is viewing the current page
|
$_SERVER['REMOTE_HOST']
|
Returns the Host name from where the user is viewing the current page
|
$_SERVER['REMOTE_PORT']
|
Returns the port being used on the user's machine to communicate with the web server
|
$_SERVER['SCRIPT_FILENAME']
|
Returns the absolute pathname of the currently executing script
|
$_SERVER['SERVER_ADMIN']
|
Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as someone@w3scholls.com)
|
$_SERVER['SERVER_PORT']
|
Returns the port on the server machine being used by the web server for communication (such as 80)
|
$_SERVER['SERVER_SIGNATURE']
|
Returns the server version and virtual host name which are added to server-generated pages
|
$_SERVER['PATH_TRANSLATED']
|
Returns the file system based path to the current script
|
$_SERVER['SCRIPT_NAME']
|
Returns the path of the current script
|
$_SERVER['SCRIPT_URI']
|
Returns the URI of the current page
|
PHP $ _REQUEST
PHP $_REQUEST digunakan untuk mengumpul data selepas pengguna menghantar HTML form.
Contoh di bawah menunjukkan satu HTML Form dengan input field dan submit button. Apabila pengguna mengklik pada "Submit", data dihantar kefile yang dinyatakan pada elemen action dalam tag
file yang sama untuk pemprosesan. Jika anda ingin menggunakan file yang lain, gantikan dengan nama file pilihan anda. Kemudian, kita boleh menggunakan superglobal variable $_REQUEST untuk mengumpul data tadi:
Contoh
$name = $_REQUEST['fname'];
echo $name;
?>
($_REQUEST is a merging of $_GET and $_POST where $_POST overrides $_GET. Good to use $_REQUEST on self refrential forms for validations.)
($_REQUEST adalah gabungan $_GET dan $_POST di mana server akan memberi keutamaan kepada variable $_POST. Sesuai untuk panggilan kepada file sendiri.)
PHP $_POST
PHP $_POST digunakan secara meluas untuk mengumpul data selepas HTML Form dihantar oleh pengguna menggunakan kaedah "post".
Contoh di bawah menunjukkan satu HTML Form dengan input field dan submit button. Apabila pengguna menghantar data dengan mengklik pada "Submit" button, data dihantar kepada file yang dinyatakan pada elemen action dalam
file yang sama untuk pemprosesan. Jika anda ingin menggunakan file yang lain, gantikan dengan nama file pilihan anda. Kemudian, kita boleh menggunakan superglobal variable $_POST untuk mengumpul data tadi:
Contoh
$name = $_POST['fname'];
echo $name;
?>
PHP $_GET
PHP $_GET digunakan untuk mengumpul data selepas HTML Form dihantar dengan menggunakan kaedah “GET”.
$_GET juga boleh mengumpul data yang terdapat di dalam alamat URL.
Andaikan kita mempunyai halaman HTML yang mengandungi link dengan parameter:
Apabila pengguna mengklik pada link "Test $GET", parameter "subject" dan "web" dihantar ke file "test_get.php". Kemudiannya, anda boleh mendapatkan kedua-dua nilai input ini dengan menggunakan variable $_GET.
Contoh di bawah menunjukkan kod dalam "test_get.php":
Contoh
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>