ชนิดของข้อมูลและตัวแปร
สำหรับการเขียนโปรแกรมสำหรับภาษาคอมพิวเตอร์ระดับสูง สิ่งที่จะขาดเสียมิได้คือ การกำหนดและใช้ตัวแปร (variable) ตัวแปรในภาษา PHP จะเหมือนกับในภาษา Perl คือเริ่มต้นด้วยเครื่องหมาย dollar ($) โดยเราไม่จำเป็นต้องกำหนดแบบของข้อมูล (data type) อย่างเจาะจงเหมือนในภาษาซี เพราะว่า ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติว่า ตัวแปรดังกล่าว ใช้ข้อมูลแบบใด ในช่วงเวลานั้นๆ เช่น ข้อความ จำนวนเต็ม จำนวนที่มีเลขจุดทศนิยม ตรรก เป็นต้น
สำหรับการเขียนโปรแกรมสำหรับภาษาคอมพิวเตอร์ระดับสูง สิ่งที่จะขาดเสียมิได้คือ การกำหนดและใช้ตัวแปร (variable) ตัวแปรในภาษา PHP จะเหมือนกับในภาษา Perl คือเริ่มต้นด้วยเครื่องหมาย dollar ($) โดยเราไม่จำเป็นต้องกำหนดแบบของข้อมูล (data type) อย่างเจาะจงเหมือนในภาษาซี เพราะว่า ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติว่า ตัวแปรดังกล่าว ใช้ข้อมูลแบบใด ในช่วงเวลานั้นๆ เช่น ข้อความ จำนวนเต็ม จำนวนที่มีเลขจุดทศนิยม ตรรก เป็นต้น
หลักการตั้งชื่อ ตัวแปร
$var-name=value;
$var-name=value;
ขอบเขตการตั้งชื่อตัวแปร
- ขึ้นต้นด้วยเครื่งหมาย $ แล้วตามด้วยตัวอักษร A-Z,a-z
- มีความยาวไม่เกิน 255 ตัวอักษร
- ห้ามมีจุดทศนิยม หรือช่องว่าง
- จะต้องไม่ตรงกับคำสงวน และควรตั้งชื่อ ให้มีความหมายใกล้เคียงกับ ค่าที่เก็บ
- ตัวอักษรเล็กหรือใหญ่จะเป็นตัวแปรต่างกัน
- ถ้าตั้งตัวแปรมาใหม่ แล้วทับตัวแปรเก่า ค่าของตัวแปรเก่าจะหายไป
- ขึ้นต้นด้วยเครื่งหมาย $ แล้วตามด้วยตัวอักษร A-Z,a-z
- มีความยาวไม่เกิน 255 ตัวอักษร
- ห้ามมีจุดทศนิยม หรือช่องว่าง
- จะต้องไม่ตรงกับคำสงวน และควรตั้งชื่อ ให้มีความหมายใกล้เคียงกับ ค่าที่เก็บ
- ตัวอักษรเล็กหรือใหญ่จะเป็นตัวแปรต่างกัน
- ถ้าตั้งตัวแปรมาใหม่ แล้วทับตัวแปรเก่า ค่าของตัวแปรเก่าจะหายไป
การตรวจสอบชนิดของตัวแปร
gettype($var-name);
gettype($var-name);
ตัวอย่างเช่น
<?
$a=1234;
echo gettype($a);
?>
การประกาศค่าตัวแปร
1.Integer เก็บจำนวนเต็มบวก และจำนวนเต็มลบ เลขฐานสิบ ฐานแปด และฐานสิบหก
$a=123;
$a=-123;
<?
$a=1234;
echo gettype($a);
?>
การประกาศค่าตัวแปร
1.Integer เก็บจำนวนเต็มบวก และจำนวนเต็มลบ เลขฐานสิบ ฐานแปด และฐานสิบหก
$a=123;
$a=-123;
Sample1.php
<?
$a=123;
$b=456;
$c=$a+$b;
echo"$c";
?>
$a=123;
$b=456;
$c=$a+$b;
echo"$c";
?>
Out
Put
2. Float เก็บจำนวนจริงทั้งบวกและลบ ทั้งมีทศนิยม
และไม่มีทศนิยม
$a=1.23;
$a=-1.23;
$a=-1.23;
Sample2.php
<?
$a=123.45;
$b=456.78;
$c=$a*$b;
printf("%.2f ",$c);
?>
$a=123.45;
$b=456.78;
$c=$a*$b;
printf("%.2f ",$c);
?>
Out Put
3.String เก็บจำนวนตัวเลข และ ข้อความ
$a="PHP
Programming";
$a="1234567890";
$a="1234567890";
Sample3.php
<?
$a="PHP Programming";
$b="1234567890";
echo"$a <br> $b";
?>
$a="PHP Programming";
$b="1234567890";
echo"$a <br> $b";
?>
Out Put
การตรวจสอบว่าตัวแปรนี้มีการกำหนดค่าหรือไม่
isset($var-name);
<?
$a=1234;
if (isset($a))
{
echo"ไม่มีการกำหนดค่าตัวแปร";
}
else
{
echo"มีการกำหนดค่าตัวแปร";
}
?>
isset($var-name);
<?
$a=1234;
if (isset($a))
{
echo"ไม่มีการกำหนดค่าตัวแปร";
}
else
{
echo"มีการกำหนดค่าตัวแปร";
}
?>
การตรวจสอบว่าตัวแปรนี้มีค่าว่างหรือไม่
empty($var-name);
empty($var-name);
<?
$a=1234;
if (empty($a))
{
echo"ตัวแปรมีค่าว่าง";
}
else
{
echo"ตัวแปรมีค่าไม่ว่าง";
}
?>
Sample4.php
<?
$mystring = "Hello World!";
$myinteger = 1031;
$myfloat = 3.14;
?>
ถ้าเราต้องการจะแสดงค่าของตัวแปร ก็อาจจะใช้คำสั่ง echo ได้ ตัวอย่างเช่น $a=1234;
if (empty($a))
{
echo"ตัวแปรมีค่าว่าง";
}
else
{
echo"ตัวแปรมีค่าไม่ว่าง";
}
?>
Sample4.php
<?
$mystring = "Hello World!";
$myinteger = 1031;
$myfloat = 3.14;
?>
echo "$mystring\n";
echo "$myinteger\n";
echo "$myfloat\n";
สัญลักษณ์ \n หมายถึงการขึ้นบรรทัดใหม่ เป็น escape character ตัวหนึ่ง (สำหรับตัวอื่นๆ โปรดดูในตาราง) เมื่อพิมพ์ข้อความเป็นเอาพุต และโปรดสังเกตว่า สำหรับการใช้งานภายในเอกสาร HTML การขึ้นบรรทัดใหม่โดยใช้ \n จะแตกต่างจากการขึ้นบรรทัดโดยใช้ <BR> ใน HTML
<?
$mystring = "Hello
World!";
$myinteger = 1031;
$myfloat = 3.14;
echo "$mystring<BR>\n";
echo "$myinteger<BR>\n";
echo "$myfloat<BR>\n";
?>
$myinteger = 1031;
$myfloat = 3.14;
echo "$mystring<BR>\n";
echo "$myinteger<BR>\n";
echo "$myfloat<BR>\n";
?>
Escaped characters \n newline
\r carriage
\t horizontal tab
\\ backslash
\$ dollar sign
\" double-quote
%% percent
ตัวแปรตัวหนึ่ง อาจจะมีข้อมูลหลายแบบในช่วงเวลาที่ต่างกัน แต่การจะใช้งานบ้างครั้งจะต้องดูด้วยว่า เมื่อไหร่จะใช้เป็นตัวเลขเท่านั้น และไม่ใช้กับข้อความเป็นต้น ตัวอย่างเช่น
<?
$x = 10;
$y = $x + 15.5;
echo "$x, $y \n";
$x = "abc";
echo "$x \n";
$z = $x + 15.5;
echo "$x, $z \n";
echo ("100.5" - 16);
echo (0xef + 007);
\r carriage
\t horizontal tab
\\ backslash
\$ dollar sign
\" double-quote
%% percent
ตัวแปรตัวหนึ่ง อาจจะมีข้อมูลหลายแบบในช่วงเวลาที่ต่างกัน แต่การจะใช้งานบ้างครั้งจะต้องดูด้วยว่า เมื่อไหร่จะใช้เป็นตัวเลขเท่านั้น และไม่ใช้กับข้อความเป็นต้น ตัวอย่างเช่น
<?
$x = 10;
$y = $x + 15.5;
echo "$x, $y \n";
$x = "abc";
echo "$x \n";
$z = $x + 15.5;
echo "$x, $z \n";
echo ("100.5" - 16);
echo (0xef + 007);
?>
ในกรณีนี้ เรากำหนดในตอนแรกว่า $x ให้เก็บค่า 10 ซึ่งเป็นจำนวนเต็ม ถ้าเรานำมาบวกกับ 15.5 ผลที่ได้ก็จะเป็น
25.5 ซึ่งกลายเป็นเลขทศนิยม แล้วเก็บไว้ในตัวแปร $y ต่อมากำหนดให้ตัวแปร $x เก็บสตริงค์ที่เก็บข้อความ
"abc" ถ้าเรานำมาบวกกับ 15.5 กรณีนี้ก็จะให้ผลที่ได้ไม่ถูกต้อง เนื่องจากไม่สามารถนำข้อความมา
บวกกับตัวเลขได้
แต่ PHP อนุญาตให้เราทำเช่นนั้นได้ในบางกรณี สมมุติว่า สตริงค์มีเฉพาะตัวเลขและสามารถเปลี่ยนเป็น เลขจำนวนเต็ม หรือจำนวนจริงได้โดยอัตโนมัติ เราก็นำสตริงค์นี้มาบวกลบคูณหรือหารกับตัวแปรที่เก็บเป็นตัวเลขได้
แต่ PHP อนุญาตให้เราทำเช่นนั้นได้ในบางกรณี สมมุติว่า สตริงค์มีเฉพาะตัวเลขและสามารถเปลี่ยนเป็น เลขจำนวนเต็ม หรือจำนวนจริงได้โดยอัตโนมัติ เราก็นำสตริงค์นี้มาบวกลบคูณหรือหารกับตัวแปรที่เก็บเป็นตัวเลขได้
ค่าคงที่สำหรับเลขจำนวนเต็ม อาจจะอยู่ในรูปของเลขฐานแปดหรือสิบหกก็ได้
ถ้าเป็นเลขฐานแปดจะมีเลขศูนย์นำ ถ้าเป็นเลขฐานสิบหกจะมี 0x นำหน้า
หากต้องการกำหนด ชื่อตัวแปรจากค่าของตัวแปรก็สามารถกำหนดได้เป็น
$$var-name=value;
DOCUMENT_ROOT
|
แสดง path root directory
|
GATEWAY_INTERFACE
|
แสดงค่าอินเทอร์เฟชของ Cgi
|
HTTP_ACCEPT_LANGUAGE
|
ภาษาที่ใช้
|
HTTP_CONNECTION
|
สถานภาพการ คอนเน็กต์
|
HTTP_USER_AGENT
|
แสดงประเภทของโปรแกรมที่เรียกเข้ามา
เช่น IE
|
PATH_INFO
|
แสดงชื่อเอกสาร
|
PATH_TRANSLATED
|
แสดง Path ของเอกสาร
|
QUERY_STRING
|
แสดงค่าใน Query String
|
REMOTE_ADDR
|
แสดงค่า Ip ของเครื่องที่เข้ามา
|
REMOTE_PORT
|
แสดง Port เครื่องที่เข้ามา
|
REQUEST_METHOD
|
แสดงค่ารับส่งว่าเป็น Get หรือ Post
|
SCRIPT_NAME
|
แสดงชื่อเอกสาร
|
SERVER_NAME
|
แสดงชื่อ Server
|
SERVER_PORT
|
แสดง Prot ของ Server
|
SERVER_PROTOCOL
|
แสดง โปรโตคอลของ Server
|
SERVER_SOFTWARE
|
แสดง โปรแกรมของ Server
|
คุณสามารถดูโครงสร้างรวมทั้งระบบต่าง ๆ ที่คุณใช้งานอยู่ได้โดย
<?
phpinfo();
?>
<?
phpinfo();
?>
Sample1.php
<?
echo "Document : " .$DOCUMENT_ROOT."<br> ";
echo "Interface : " .$GATEWAY_INTERFACE."<br> ";
echo "Language : " .$HTTP_ACCEPT_LANGUAGE."<br> ";
echo "Connection : " .$HTTP_CONNECTION."<br> ";
echo "Browser : " .$HTTP_USER_AGENT."<br> ";
echo "Path Info : " .$PATH_INFO."<br> ";
echo "Path Translated : " .$PATH_TRANSLATED."<br> ";
echo "Query String : " .$QUERY_STRING."<br> ";
echo "IP Address Client : " .$REMOTE_ADDR."<br> ";
echo "Port Client : " .$REMOTE_PORT."<br> ";
echo "Request Method : " .$REQUEST_METHOD."<br> ";
echo "Script Name : " .$SCRIPT_NAME."<br> ";
echo "Server Name : " .$SERVER_NAME."<br> ";
echo "Server Port : " .$SERVER_PORT."<br> ";
echo "Server Protocol : " .$SERVER_PROTOCOL."<br> ";
echo "Server Software : " .$SERVER_SOFTWARE."<br> ";
echo "PHP OS : " .(PHP_OS)."<br> ";
echo "PHP Version : " .(PHP_VERSION)."<br>";
?>
echo "Document : " .$DOCUMENT_ROOT."<br> ";
echo "Interface : " .$GATEWAY_INTERFACE."<br> ";
echo "Language : " .$HTTP_ACCEPT_LANGUAGE."<br> ";
echo "Connection : " .$HTTP_CONNECTION."<br> ";
echo "Browser : " .$HTTP_USER_AGENT."<br> ";
echo "Path Info : " .$PATH_INFO."<br> ";
echo "Path Translated : " .$PATH_TRANSLATED."<br> ";
echo "Query String : " .$QUERY_STRING."<br> ";
echo "IP Address Client : " .$REMOTE_ADDR."<br> ";
echo "Port Client : " .$REMOTE_PORT."<br> ";
echo "Request Method : " .$REQUEST_METHOD."<br> ";
echo "Script Name : " .$SCRIPT_NAME."<br> ";
echo "Server Name : " .$SERVER_NAME."<br> ";
echo "Server Port : " .$SERVER_PORT."<br> ";
echo "Server Protocol : " .$SERVER_PROTOCOL."<br> ";
echo "Server Software : " .$SERVER_SOFTWARE."<br> ";
echo "PHP OS : " .(PHP_OS)."<br> ";
echo "PHP Version : " .(PHP_VERSION)."<br>";
?>
Out put
- Arrary 1 มิติ
$a[0]="Somchai";
$a[1]="Werachai";
$a[2]="Surachai";
$a[3]="Adisorn";
การประกาศตัวแปร
$a[5]
จะมีสมาชิก 6 ตัวคือ $a[0],$a[1],$a[2],$a[3],$a[4],$a[5]
$a[3]
จะมีสมาชิก 4 ตัวคือ $a[0],$a[1],$a[2],$a[3]
Sample
<?
$color_table["red"] = 0xff0000;
$color_table["green"] = 0x00ff00;
$color_table["blue"] = 0x0000ff;
$color_name= "red";
echo "value = ".$color_table[ $color_name]."<BR>\n";
?>
Out
value = 16711680
การใช้คำสั่ง each และ list สำหรับ associative array ถ้าเราต้องการจะเข้าถึงข้อมูลแต่ละคู่ที่ถูกเก็บอยู่ใน associative array เราอาจจะใช้วิธีเรียกผ่านฟังก์ชัน each() และ list() ตามตัวอย่างต่อไปนี้
Sample
<?
unset($a);
$a = array( "a" => 10, "b" => 20, "c" => 30 );
while (list($key,$value) = each($a)) {
echo "$key=$value <BR>\n";
}
?>
Out
a=10
b=20
c=30
ฟังก์ชัน each() จะอ่านข้อมูลทีละคู่จากอาร์เรย์แบบเชื่อมโยงมาแล้วส่งไปยังฟังก์ชัน list() ซึ่งจะทำหน้าที่แยกเก็บ ซึ่งในกรณีก็คือ เก็บไว้ในตัวแปร $key และ $value หลังจากนั้น เราก็สามารถนำค่าของตัวแปร ไปใช้งานตามที่ต้องการได้
- Arrary 2 มิติ
$a[0][0]="Somchai";
$a[0][1]="Werachai";
$a[1][2]="Surachai";
การประกาศตัวแปร
$a[2][2]
จะมีสามชิก 8 ตัว คือ $a[0][0],$a[0][1],$a[0][2],$a[1][0],$a[2][0],$a[1][1],$a[1][2],$a[2][2],
Sample
<?
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" => ".th"),
"malasia" => array ( "zone" => "Asia", "D_NAME" => ".my"),
"india" => array ( "zone" => "Asia", "D_NAME" => ".in"),
"holland" => array ( "zone" => "Europe", "D_NAME" => ".nl"),
"france" => array ( "zone" => "Europe", "D_NAME" => ".fr")
);
echo "domain name=".$countries[ "thailand"]["D_NAME"]."<BR>\n";
?>
domain name=.th
- Array 3 มิติ
$a[0][0][0]="Somchai";
$a[0][1][2]="Werachai";
$a[1][2][3]="Surachai";
Sample1.php
<?
$a[0]="Somchai";
$a[1]="Werachai";
$a[2]="Surachai";
$a[3]="Adisorn";
$b[0]=20;
$b[1]=21;
$b[2]=22;
$b[3]=23;
for($i=0;$i<=3;$i++)
{
echo"name : $a[$i] Old $b[$i] <br>";
}
?>
Out Put
การใช้อาร์เรย์สองมิติ
ถ้าเราต้องการจะใช้อาร์เรย์แบบสองมิติ (หรือมากกว่า) ก็ทำได้เช่นกัน คือชื่อตัวแปรแล้วตามด้วย [..][..] ตัวอย่างเช่น
<?
$dim = 3;
for ($row=0; $row <= $dim; $row++) {
for ($column=0; $column <= $dim; $column++) {
$myarray2[$row][$column] = 4*$row + $column;
echo $myarray2[$row][$column]," ";
}
echo "<BR>\n";
}
?>
สังเกตว่า สำหรับการใช้งานตัวแปรที่เป็นอาร์เรย์ เราไม่จำเป็นต้องแจ้งใช้ตัวแปรที่เป็นอาร์เรย์ พร้อมกำหนดขนาดก่อนการใช้งาน
คือ ค่าที่กำหนดแล้ว สามารถเรียกใช้งานได้ทุก
ๆ ครั้ง ที่เราประกาศขึ้นมา สามารถแบ่งออกได้เป็น 2 ประเภทคือ
1.ค่าคงที่ PHP กำหนดมาให้ เป็นค่าที่เราสามารถนำไปใช้งานได้ทันที่
1.ค่าคงที่ PHP กำหนดมาให้ เป็นค่าที่เราสามารถนำไปใช้งานได้ทันที่
E_ERROR
|
แสดงข้อผิดพลาดที่ parse ตรวจหาไม่พบ
|
E_WARNING
|
แสดงเงื่อนไขให้ทราบ และทำงานต่อไป
|
E_PARSE
|
การ parse
ทำให้เกิดข้อผิดพลาดใน Program ที่ไม่สามารถตรวจพบ
|
E_NOTICE
|
เมื่อเกิดความผิดพลาด การเอ็กซิคิต์ยังมีต่อไป
|
_FILE_
|
แสดงชื่อไฟล์ที่ทำงานอยู่ เพื่อตรวจสอบหาข้อผิดพลาด
|
_LINE_
|
แสดงจำนวนบรรทัดของไฟล์ เพื่อตรวจสอบหาข้อผิดพลาด
|
PHP_VERSION
|
แสดง V. ของ PHP ที่ใช้งานอยู่
|
PHP_OS
|
แสดงระบบปฏิบัติการที่ใช้เป็น Server
|
TRUE
|
ตรวจสอบค่าจริง
|
FALSE
|
ตรวจสอบค่าเท็จ
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น