Make your own free website on Tripod.com
 

 

การเขียนโปรแกรมภาษา PHP

            
               

ในกรณีนี้ เรากำหนดในตอนแรกว่า $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