5. ฟังก์ชัน (Functions)
- มีหลักพัน รู้จักแค่หลักร้อย แต่ใช้แค่หลักสิบ
- ไม่จำเป็นจำได้ทุกตัว แต่รู้ว่ามีให้ใช้
และเลือกใช้ได้อย่างเหมาะสม .. ก็พอ
- Function แบบสร้างขึ้นใช้เอง แบ่งเป็น internal และ
external มีความสำคัญมาก
|
ex.501
zz501.php |
แสดงค่า Configuration
<?
phpinfo();
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
ตาราง แสดงข้อมูลมากมาย
# ดูว่าสนับสนุน GD เพื่อเขียนภาพ
Graphic หรือไม่
# ดู DOCUMENT_ROOT ใน
Environment เป็นต้น
|
ex.502
zz502.php |
คำสั่งตัดคำด้วยคำสั่ง substr
<?
$a = "abcde";
echo substr($a,0,2) , "<br>";
echo substr($a,2,2) , "<br>";
echo substr($a,2) , "<br>";
echo substr($a,-2) , "<br>";
echo strlen("abc") , "<br>";
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
ab
cd
cde
de
3
# ควรหาคำตอบ ว่าคำสั่ง และผลลัพธ์ เป็นเช่นนั้น
เพราะอะไร
|
ex.503
zz503.php |
ฟังก์ชันเกี่ยวกับเวลา และการสุ่ม
<?
srand(microtime()*1000000);
echo rand(1,10)."<br>";
echo microtime()."<br>";
echo microtime() + microtime()."<br>";
echo time()."<br>";
echo date("d/m/Y H:i:s")."<br>";
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
2
0.04055200 1146796189
0.081168
1146796189
05/05/2006 09:29:49
# แสดงฟังก์ชันเกี่ยวกับเวลา
และค่าที่ได้จากการสุ่ม
# rand มาจากคำว่า random แปลว่าสุ่ม
ได้ค่าระหว่าง 1 ถึง 10
|
ex.504
zz504.php |
ฟังก์ชัน require และ
include แบบ html
<body>
<? require("zz502.php"); ?>
<hr>
<? include("zz503.php"); ?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ถ้าพบ error ในแฟ้ม
x.php จะเป็น Fatal Error
# ถ้าพบ error ในแฟ้ม
y.php จะเป็น Warning
# ตามทฤษฎี เขาว่าอย่างนั้น
|
ex.505
zz505.php zz505a.php zz505b.php |
ฟังก์ชัน require และ
include แบบเต็ม
<?
$a=1;
$b="one";
?>
<?
# zz505a.php
require("zz505.php");
echo $a,$b;
?>
<?
# zz505b.php
include("zz505.php");
echo $a,$b;
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
1one
# ตัวอย่างนี้มี 3 แฟ้ม
คือ setvar.php use1.php use2.php
# โปรแกรมกำหนดค่าให้โปรแกรมอื่นเรียกใช้ คือ setvar.php
# โปรแกรมเรียกใช้แฟ้มกำหนดค่าคือ use1.php
และ
use2.php
|
ex.506
zz506.php |
ฟังก์ชันตรวจสอบตัวแปร
<form action=zz506.php method=post>
<input name=pass>
<input type=submit>
</form>
<? if (!isset($_POST["pass"])) exit; ?>
Test Test Test
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ถ้ามีตัวแปร pass ส่งเข้ามา
ก็จะพิมพ์ Test 3 คำ
|
ex.507
zz507.php |
สร้างฟังก์ชันแบบ internal แบบธรรมดา
<?
a();
echo "b";
a();
?>
bb
<?
function a() {
echo
"a";
echo
"x";
}
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
axbaxbb
# แสดงการประกาศฟังก์ชันครั้งเดียว แต่เรียกใช้ 2
ครั้ง
|
ex.508
zz508.php |
สร้างฟังก์ชันแบบ internal แบบรับค่า
<?
a(5,6);
function a($b1,$b2) {
echo "$b1 +
$b2 = ", $b1 + $b2;
}
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
5 + 6 = 11
# ส่งค่าให้กับฟังก์ชันใช้งาน
|
ex.509
zz509.php |
สร้างฟังก์ชันแบบ internal แบบรับ
และคืนค่า
<?
echo a(5,6);
echo a(5,6);
function a($b1,$b2) {
$t = $b1 + $b2;
return $t;
}
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
1111
# แสดงการรับปกติ
# คืนค่าให้ฟังก์ชันด้วย return
|
ex.510
zz510.php |
สร้างฟังก์ชันแบบ internal แบบคืนค่า
<?
$b1 = 5;
$b2 = 6;
echo a(),b();
function a() {
global $b1,$b2;
$t = $b1 + $b2;
return $t;
}
function b() {
global $b1,$b2;
$t = $b1 + $b2;
return $t;
}
?>
|
ตัวอย่างผลลัพธ์ หรืออธิบาย
1111
# ส่งผ่านตัวแปรแบบ global เข้าไปในฟังก์ชัน
# ต้องประกาศแบบ global ในทุกฟังก์ชัน
# ประกาศข้างนอก ก็ยังไม่สามารถใช้ใน function
|