ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingphp สร้าง function ใน function ได้หรือเปล่าครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: php สร้าง function ใน function ได้หรือเปล่าครับ  (อ่าน 1375 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
tamiyalagu
คนรักเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 191



ดูรายละเอียด
« เมื่อ: 24 มกราคม 2010, 16:29:35 »

function aaa(){
   bbb();
   function bbb(){
      // code
   }
}

แบบนี้อ่ะครับ แล้วเขาทำกันเป็นปกติหรือเปล่า หรือว่าควรจะแยกออกจากกัน

function aaa(){
   bbb();
}
function bbb(){
   // code
}

คือ function bbb จะถูกเรียกใช้ก็ต่อเมื่อต้องผ่าน function aaa เท่านั้น
เลยคิดว่าถ้าเอาไปใส่ไว้ข้างในน่าจะดูเป็นระเบียบเรียบร้อยกว่า
แต่ไม่รู้ว่าโดยหลักการเขาเขียนกันยังไง เลยมาถามดูครับ
บันทึกการเข้า
pjgunner
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 106



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 24 มกราคม 2010, 16:33:38 »

จริงๆแล้วมันไม่จำเป็น ก็เพียงแค่ใส่ ไว้ใน aaa() แค่นั้น เพราะยังไงก็เรียกได้แต่ aaa()

แบบนี้ไม่รู้ถูกใจป่าวนะ

Class Test{
public function aaa(){$this->bbb();}
private function bbb(){}
}

รู้สึกว่า php5.3 จะมีของเล่นใหม่ แต่ไม่ได้ติดตาม ชื่อมันก็คือ ฟังชั่นไร้ชื่อ

งั้นลองอีกอัน

$aaa_isrun = FALSE;

function aaa(){
global $aaa_isrun;
$aaa_isrun = TRUE;
bbb();
$aaa_isrun = FALSE;
}

function bbb(){
global $aaa_isrun;
if(!$aaa) return;
}
« แก้ไขครั้งสุดท้าย: 24 มกราคม 2010, 16:42:14 โดย pjgunner » บันทึกการเข้า

g-ji
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 231
ออฟไลน์ ออฟไลน์

กระทู้: 3,254



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 24 มกราคม 2010, 16:37:16 »

ปกติ สร้างฟังก์ชันซ้อนกันไม่ได้เน้อ (หรือมันได้หว่า?)

ก็สร้างฟังก์ชัน แยกๆ ไปนั้นแหละ

function aaa(){
bbb();
}

function bbb(){
echo 'is bbb';
}

บันทึกการเข้า

woratana
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 178
ออฟไลน์ ออฟไลน์

กระทู้: 2,283



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 24 มกราคม 2010, 16:39:35 »

จริง ๆ ถ้า bbb จะเรียกใช้จาก aaa เท่านั้น ก็เอาโค้ดใน bbb ไปใส่ใน aaa เลยไม่ง่ายกว่าเหรอครับ  Tongue แล้วคอมเม้นท์กำกับเอา

จะได้ไม่ต้องแยกฟังก์ชั่นเยอะแยะให้งง  wanwan020
บันทึกการเข้า

g-ji
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 231
ออฟไลน์ ออฟไลน์

กระทู้: 3,254



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 24 มกราคม 2010, 16:42:38 »

จริง ๆ ถ้า bbb จะเรียกใช้จาก aaa เท่านั้น ก็เอาโค้ดใน bbb ไปใส่ใน aaa เลยไม่ง่ายกว่าเหรอครับ  Tongue แล้วคอมเม้นท์กำกับเอา

จะได้ไม่ต้องแยกฟังก์ชั่นเยอะแยะให้งง  wanwan020

เออเนอะ
บันทึกการเข้า

tamiyalagu
คนรักเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 191



ดูรายละเอียด
« ตอบ #5 เมื่อ: 24 มกราคม 2010, 17:04:05 »

ทำไม่เป็นอ่ะครับ สมมุตแบบนี้

      function aaa(){
         preg_replace_callback("#pattern#","bbb",$text);
         array_walk($array, 'ccc');
      }

ถ้าจะเอาโค้ด function bbb หรือ ccc ไปใส่ใน aaa ต้องเขียนยังไงครับ
บันทึกการเข้า
g-ji
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 231
ออฟไลน์ ออฟไลน์

กระทู้: 3,254



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 24 มกราคม 2010, 17:16:07 »

ก็สร้างฟังก์ชันแบบนี้ไง

function aaa(){
       
preg_replace_callback("#pattern#","bbb",$text);
array_walk($array, 'ccc');
}

function bbb(){
Code /*Call back code*/
}

function ccc(){
Code /*your array_walk function*/
}
บันทึกการเข้า

tamiyalagu
คนรักเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 191



ดูรายละเอียด
« ตอบ #7 เมื่อ: 24 มกราคม 2010, 17:22:06 »

ก็สร้างฟังก์ชันแบบนี้ไง

function aaa(){
       
preg_replace_callback("#pattern#","bbb",$text);
array_walk($array, 'ccc');
}

function bbb(){
Code /*Call back code*/
}

function ccc(){
Code /*your array_walk function*/
}

อันนี้มันก็แบบแยกมาอ่ะจิ ที่ตั้งกระทู้ถามเพราะอยากรู้ว่าเอาไปใส่ใน function aaa ได้หรือไม่
บันทึกการเข้า
mean
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 121
ออฟไลน์ ออฟไลน์

กระทู้: 1,009



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 25 มกราคม 2010, 19:14:13 »

มันยังมีความแตกต่างกันนะครับ
ลองศึุกษาเรื่อง extend class ดูนะครับ

http://th.php.net/manual/en/language.functions.php

ข้อแตกต่าง ของการซ้อนกัน คือ การเรียก และเข้าถึงครับผม
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์