ในกรณีนี้ เรากำหนดในตอนแรกว่า $x ให้เก็บค่า 10 ซึ่งเป็นจำนวนเต็ม ถ้าเรานำมาบวกกับ 15.5 ผลที่ได้ก็จะเป็น 25.5 ซึ่งกลายเป็นเลขทศนิยม แล้วเก็บไว้ในตัวแปร $y ต่อมากำหนดให้ตัวแปร $x เก็บสตริงค์ที่เก็บข้อความ "abc" ถ้าเรานำมาบวกกับ 15.5 กรณีนี้ก็จะให้ผลที่ได้ไม่ถูกต้อง เนื่องจากไม่สามารถนำข้อความมาบวกกับตัวเลขได้
แต่ 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();
?>
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>";
?>
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";
?>
Out Put
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

Sample2.php
<?
$a=array("Somchai","Werachai ","Surachai","Adisorn");
for($i=0;$i<=3;$i++)
{
echo"name : $a[$i] <br>";
}
?>
Out Put

อาร์เรย์ในภาษา PHP นั้นจะแตกต่างจากอาร์เรย์ในภาษาซีหรือจาวาตรงที่ว่า อาร์เรย์ในภาษา PHP มีขนาดที่เปลี่ยนแปลงได้ หรือจะเรียกว่า dynamic array หรือ vector (สำหรับอาร์เรย์มิติเดียว) เริ่มต้นอาจจะแจ้งใช้ตัวแปรแบบอาร์เรย์ พร้อมเจาะจงขนาดเริ่มแรก เช่น มีขนาดเป็นศูนย์ก็ได้
$myarray[]=3;
$myarray[]=1.1;
$myarray[]="abc";
แต่เมื่อใช้อาร์เรย์ไป ขนาดของมันจะปรับเปลี่ยนได้ คือขยายจำนวนข้อมูลที่เก็บอยู่ภายในอาร์เรย์ ตามจำนวนข้อมูลที่เราใส่เพิ่มเข้าไป จากตัวอย่างข้างบน ในกรณีที่เรามิได้กำหนดเลขดัชนี (index) ก็หมายความว่า จะมีการขยายขนาดของอาร์เรย์เพิ่มขึ้นอีกหนึ่งโดยอัตโนมัติ ทุกครั้งที่เราใส่ข้อมูลที่อยู่ทางขวา และค่าที่เรากำหนดจากทางขวามือ และจะเก็บไว้ในที่ใหม่ของอาร์เรย์ เราไม่ต้องคำนึงถึงเรื่องการจอง หรือ ปลดปล่อยหน่วยความจำของอาร์เรย์ เหมือนอย่างในกรณีของอาร์เรย์ แบบไดนามิกในภาษาซี
นอกจากนั้นข้อมูลแต่ละตัวในอาร์เรย์ไม่จำเป็น ต้องเป็นข้อมูลชนิดเดียวกัน เช่น อาจจะมีทั้งจำนวนเต็ม เลขทศนิยม และข้อความ ปะปนกันไป ตัวอย่างเช่น
<?
$myarray[0] = 1;
echo "number of elements =".count($myarray)."<BR>\n";
$myarray[1] = "abc";
echo "number of elements =".count($myarray)."<BR>\n";
$myarray[2] = 1.3;
echo "number of elements =".count($myarray)."<BR>\n";
$myarray[]= 13+10; // the same as $myarray[3]= 13+10;
echo "number of elements =".count($myarray)."<BR>\n";
for ($i=0; $i < 4; $i++) {
echo $myarray[$i]," \n";
}
?>
ถ้าเราต้องการจะทราบจำนวนของข้อมูลที่มีอยู่ในอาร์เรย์เราจะใช้คำสั่ง count()
เทคนิคหนึ่งที่ใช้ในการสร้างอาร์เรย์ที่เก็บหลายๆข้อความหรือสตริงค์ คือ แทนที่เราจะกำหนดค่าของสมาชิก ในอาร์เรย์ทีละตัว เราจะสร้างได้โดยอัตโนมัติ โดยเก็บสตริงค์เหล่านั้นไว้ในสตริงค์เพียงอันเดียวโดยมีสัญลักษณ์ | เป็นตัวแยก และก็แล้วใช้ฟังก์ชันเป็นตัวแบ่งเพื่อสร้างอาร์เรย์อีกที ตามตัวอย่าง
<?
// create empty array
$a=array();
// define string containing color names separated by | (pipe)
$color_names="red|green|blue";
// create array from string
$a=explode("|",$color_names);
while ($color=each($a)) {
echo "$color[1]<BR>\n"; // note: $color[0] contains the index (0,1,2,...)
}
?>
ลองดูอีกตัวอย่างหนึ่งที่ใช้ฟังก์ชัน explode() สร้างอาร์เรย์โดยอัตโนมัตสำหรับใส่ไว้ใน FORM ในส่วนของ SELECT เป็นเมนูให้เลือก
<?
// create selection list from a given string
function str2select($str, $delim) {
$options = explode($delim,$str);
$num = count($options);
for( $i=0; $i < $num;$i++) {
echo "<option> $options[$i]</option>\n";
}
}
$select_str="10 บาท|20 บาท|30 บาท|40 บาท|50 บาท|100 บาท|200 บาท|500 บาท|1000 บาท";
?>
<FORM>
<SELECT NAME="testform">
<? str2select($select_str,"|"); ?>
</SELECT>
</FORM>
การใช้อาร์เรย์สองมิติ
ถ้าเราต้องการจะใช้อาร์เรย์แบบสองมิติ (หรือมากกว่า) ก็ทำได้เช่นกัน คือชื่อตัวแปรแล้วตามด้วย [..][..] ตัวอย่างเช่น
<?
$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 กำหนดมาให้ เป็นค่าที่เราสามารถนำไปใช้งานได้ทันที่
E_ERROR |
แสดงข้อผิดพลาดที่ parse ตรวจหาไม่พบ |
E_WARNING |
แสดงเงื่อนไขให้ทราบ และทำงานต่อไป |
E_PARSE |
การ parse ทำให้เกิดข้อผิดพลาดใน Program ที่ไม่สามารถตรวจพบ |
E_NOTICE |
เมื่อเกิดความผิดพลาด การเอ็กซิคิต์ยังมีต่อไป |
_FILE_ |
แสดงชื่อไฟล์ที่ทำงานอยู่ เพื่อตรวจสอบหาข้อผิดพลาด |
_LINE_ |
แสดงจำนวนบรรทัดของไฟล์ เพื่อตรวจสอบหาข้อผิดพลาด |
PHP_VERSION |
แสดง V. ของ PHP ที่ใช้งานอยู่ |
PHP_OS |
แสดงระบบปฏิบัติการที่ใช้เป็น Server |
TRUE |
ตรวจสอบค่าจริง |
FALSE |
ตรวจสอบค่าเท็จ |
|
2.ค่าคงที่ที่ผู้ใช้กำหนดขึ้นเอง
เราสามารถกำหนดค่าคงที่ เหมือนกับการประกาศตัวแปร
รูปแบบ
Define(Constant-name,Value)
เมื่อ
Constant-name ชื่อ ของค่าคงที่
Value ค่าที่จะกำหนดให้
เช่น
DEFINE("name","Werachai Nukitram");
DEFINE("old","21");
DEFINE("add","Surin");
Sample1.php
<?
DEFINE("name","Werachai Nukitram");
DEFINE("old","21");
DEFINE("add","Surin");
echo ("Your name : ".name);
echo ("<br>Your Old : " .old);
echo ("<br>Address : ".add);
?>
Out put

ใน PHP มีโอเปอเรเตอร์ด้วยกันทั้งหมด 7 ชนิดด้วยกันดังนี้ จะยกตัวอย่างที่จำเป็นที่เราต้องนำไปใช้เท่านั้นครับ
Arithmetic Operators |
โอเปอเรเตอร์ทางคณิตศาสตร์ |
String Operators |
โอเปอเรเตอร์เชิงข้อความ |
Assignment Operators |
โอเปอเรเตอร์กำหนดค่า |
Bitwise Operators |
โอเปอเรเตอร์เปรียบเทียบบิต |
Logical Operators |
โอเปอเรเตอร์เชิงตรรกศาสตร์ |
Comparison Operators |
โอเปอเรเตอร์เชิงเปรียบเทียบ |
Operator Precedence |
โอเปอเรเตอร์เพิ่ม-ลดค่า |
- Arithmetic Operators โอเปอเรเตอร์ทางคณิตศาสตร์
ตัวอย่าง |
ความหมาย |
ผลลัพธ์ |
$a + $b |
บวก |
ผลบวกของ $a และ $b. |
$a - $b |
ลบ |
ผลลัพธ์จาก $b ลบออกจาก $a. |
$a * $b |
คูณ |
ผลคูณของ $a และ $b. |
$a / $b |
หาร |
ผลหารของ $a และ $b. |
$a % $b |
หารเอาเศษ |
เศษจากการหารของ $a หารโดย $b. |
- String Operators เป็น โอเปอเรเตอร์ที่ใช้กับข้อความซึ่งจะใช้ (.) เพียง โอเปอเรเตอร์เดียว
ตัวอย่าง
<?
$a = "PHP";
$b = "Programming";
$c = $a.$b;
echo"$c";
?>
Out Put
PHPProgramming
- Assignment Operators โอเปอเรเตอร์กำหนดค่า
โอเปอเรเตอร์พื้นฐานคือ "=" คือคุณจะต้องคิดว่าค่าทางซ้ายมือของโอเปอเรเตอร์คือผลลัพธ์จาก
คำสั่งที่กระทำทางขวามือ
$a = 3;
$a += 5; // $a = 8, มีความหมายว่า $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // $b = "Hello There!",เหมือนกับ $b = $b . "There!";
เครื่องหมาย |
ความหมาย |
รูปแบบ |
ผลลัพธถ้ากำหนดให้ $a=2 |
= |
กำหนดค่า |
$a=1 |
1 |
+= |
เพิ่มค่า |
$a += 1 |
3 |
-= |
ลบค่า |
$a -= 1 |
1 |
*= |
คูณค่า |
$a *= 1 |
2 |
/= |
หารค่า |
$a /= 1 |
2 |
- Logical Operators โอเปอเรเตอร์เชิงตรรกศาสตร์
ตัวอย่าง |
ความหมาย |
ผลลัพธ์ |
$a and $b |
And |
จริงก็ต่อเมื่อ $a และ $b เป็นจริง |
$a or $b |
Or |
จริงถ้า $a หรือ $b ตัวใดตัวหนึ่งเป็จริง |
$a xor $b |
Or |
จริงถ้า $a หรือ $b ตัวใดตัวหนึ่งเป็นจริง, แต่จะไม่จริงถ้าทั้งสองไม่จริง. |
! $a |
Not |
จริงถ้า $a ไม่จริง |
$a && $b |
And |
จริงทั้ง $a และ $b เป็นจริง |
$a || $b |
Or |
จริงถ้า $a หรือ $b ตัวใดตัวหนึ่งเป็จริง |
- Comparison Operators โอเปอเรเตอร์เชิงเปรียบเทียบ
ตัวอย่าง |
ความหมาย |
ผลลัพธ์ |
$a == $b |
เท่ากับ |
จริงถ้า $a มีค่าเท่ากับ $b. |
$a != $b |
ไม่เท่ากับ |
จริงถ้า $a มีค่าไม่เท่ากับ $b. |
$a < $b |
น้อยกว่า |
จริงถ้า $a มีค่าน้อยกว่า$b. |
$a > $b |
มากกว่า |
จริงถ้า $a มีค่ามากกว่า $b. |
$a <= $b |
น้อยกว่าหรือเท่ากับ |
จริงถ้า $a มีค่าน้อยกว่าหรือเท่ากับ $b. |
$a >= $b |
มากกว่าหรือเท่ากับ |
จริงถ้า $a มีค่ามากกว่าหรือเท่ากับ $b. |
TOP |