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

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

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

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

กระทู้: 137


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

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

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

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

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

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

เพศ: ชาย
กระทู้: 64


Progressive rock blood.


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

จริงๆแล้วมันไม่จำเป็น ก็เพียงแค่ใส่ ไว้ใน 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, 04:42:14 PM โดย pjgunner » บันทึกการเข้า

I NEED YOU.
g-ji
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,945


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

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

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

function aaa(){
bbb();
}

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

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

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

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

เพศ: ชาย
กระทู้: 1,216


เป็นโปรแกรมมั่วก็นัวไปวัน ๆ~


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

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

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


[Free Photoshop Brushes] แจกบรัชโฟโต้ช์็อปแห่งปี 2009

DesigNIL: สอนออกแบบเว็บไซด์ เว็บดีไซน์ Web Design

บลอคเกี่ยวกับ ทำเว็บ สร้างเกมส์ รวมข่าวเกมส์ ไปเยี่ยมกันได้นะครับ ^^
Twitter: @designil & @woraperth
g-ji
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,945


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

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

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

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

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

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

กระทู้: 137


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

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

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

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

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

กระทู้: 2,945


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

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

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
คนรักเสียว
*

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

กระทู้: 137


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

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

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
ก๊วนเสียว
*

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

กระทู้: 287


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

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

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

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

หน้า: [1]   ขึ้นบน
พิมพ์
กระโดดไป: