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 |
การกำหนดค่าของตัวแปรที่เป็นตัวเลขหรือสตริงค์โดยใช้ assignment operators
การกำหนดค่า (assignment ) หรือเปลี่ยนแปลงค่าให้แก่ตัวแปร จะใช้โอเปอร์เรเตอร์
(assignment operators) ได้ในหลายๆรูปแบบ เหมือนอย่างที่ใช้ในภาษาซี ตามตัวอย่างต่อไปนี้
<?
$x=0;
$x += 1; // the same as $x = $x + 1;
$x--; // the same as $x = $x - 1;
$x *= 3; // the same as $x = $x * 3;
$x /= 2; // the same as $x = $x / 2;
$x %= 4; // the same as $x = $x % 4;
$x="";
$x .= 'A'; // append char to an existing string
$x .= "BC"; // append string to an existing string
?>
จากตัวอย่างข้างบน ในกรณีของการต่อสตริงค์ เราจะใช้จุด (.) เป็นโอเปอร์เรเตอร์
การใช้ตัวแปรเป็นชื่อของตัวแปร
ภาษา PHP เปิดโอกาสให้เราสามารถเลือกหรือเปลี่ยนชื่อของตัวแปรได้ ตัวอย่างเช่น
<?
$a = "var1";
$$a = 10.3;
echo "$a ${$a} $$a <BR>\n";
echo "$var1 <BR>\n";
?>
จากตัวอย่างข้างบน เรากำหนดให้ตัวแปร $a เก็บสตริงค์ "var1" และจะใช้เป็นชื่อของตัวแปรอีกตัวหนึ่ง โดยทางอ้อม $$a เป็นการอ้างถึงตัวแปรที่มีชื่อเดียวกับค่าของตัวแปร $a (ในกรณีนี้คือ var1) ดังนั้นถ้าเราเขียนว่า $$a หรือ $var1 ก็หมายถึงตัวแปรตัวเดียวกัน ถ้าต้องการแสดงค่าของ $$a โดยใช้คำสั่ง echo โดยอยู่ในสตริงค์ (ระหว่าง double quotations) เราจะต้องเขียน ${$a} ไม่ใช่ $$a เพราะว่า ถ้าเขียนตามแบบหลัง ตัวแปลคำสั่งจะอ่านค่า $a ก่อนแล้วแทนที่ลงในข้อความ ซึ่งจะได้ $var1แทนที่จะเป็นการอ่านค่าของ $var1
เทคนิคนี้ยังสามารถใช้ได้กับฟังก์ชัน ตัวอย่างเช่น
<?
function foobar() {
echo "foobar<BR>\n";
}
function callFunc ($f) {
if ( is_string($f) == true) {
$f();
}
}
callFunc("foobar");
?>
ตัวอย่างข้างบนอาจจะทำให้เกิดปัญหาถ้าสมมุติว่า $f เป็นชื่อของฟังก์ชันที่ไม่มีอยู่จริง
วิธีตรวจสอบคือ การใช้ฟังก์ชัน function_exists() ดังต่อไปนี้
<?
function MyFunc() {
print ("ok..<BR>\n");
}
$f="myFunc";
if ( function_exists($f) ) {
$f();
}
else {
echo "$f does not exist!";
}
?>
PHP Looping
PHP Condition
PHP Variable
PHP Syntax