อยากรู้ว่ามีวิธี เก็บค่าตัวแปลภายนอก จากฟังก์ชั่นได้หรือเปล่าครั

โดยปกติ หากสร้าง function จะได้ค่ากลับมาก็ต่อเมื่อ return ครับแต่ผมอยากให้ เก็บค่าตัวแปลในฟังก์ชั่น เลยทำได้หรือเปล่าครับ

เช่น



<?php

function aa($dd) {

      $val = $dd

}



aa('data1');

aa('data2');

aa('data3');

aa('data4');



print $val;

?>

ต้องการให้แสดง



data1data2data3data4



คือผมไม่ต้องกาให้ return ครับ หาก return ต้องเอาค่ามาเก็บเช่น



$val .= aa('data1');

$val .= aa('data2');

$val .= aa('data3');

$val .= aa('data4');



ไม่ทราบอธิบายคำถามงงหรือเปล่าครับ
01 พ.ย. 2553 2 1,569

จะงงดีมั้ยเนี่ย....



ปกติแล้วทำไม่ได้ครับ เพราะตามกฏแล้ว ขอบเขตของตัวแปรจะอยู่ภายในฟังก์ชั่นเท่านั้น ทีนี้ผมไม่รู้ว่าจุดประสงคฺ์ เพื่ออะไร แต่ดูจากผลลัพท์ที่ต้องการแค่แสดงค่า ก็มีความเป็นไปได้ดังนี้



วิธีที่ 1

<?php

function aa($dd) {

  // จะเก็บไว้ใน $val ก่อนทำไมในเมือ่ต้องการแสดงค่า หรือถ้าจะต้องทำอย่างอื่นก่อน ก็ทำแล้วแสดงผลเลย ไม่ต้อง return

  echo $dd;

}

?>



วิธีที่ 2

<?php

function aa($dd) {

  return $dd;

}

// ตามเงื่อนไขที่ว่าไม่ต้องการเก็บผลลัพท์ในตัวแปรก่อน

echo aa($dd);

?>



วิธีที่ 3

<?php

$val = '';

function aa($dd) {

  // ใช้ตัวแปรแบบ global

  global $val;

  $val .= $dd;

}



aa('data1');

aa('data2');

aa('data3');

aa('data4');



echo $val;

?>

#1

ขอบคุณอาจารย์ มากครับ



จากที่ดูผมต้องการแบบวิธีที่ 3 มากครับ



สำหรับเหตุผลที่นำวิธีนี้ไปใช้



ผมกำลังหัดเขียนเป็น template ครับ



โดยจะเก็บ html เป็น text ต่อๆ กันก่อนจะส่ง เข้า หน้า view ครับ



เช่น



add_css('http://localhost/css/css1.css');

add_css('http://localhost/css/css2.css');

add_css('http://localhost/css/css3.css');



function add_css($url) {

      $css .= '<link href="'.$url.'" rel="stylesheet" type="text/css" />';

}



ประมาณนี้ครับผม

อันนี้คือเหตุผลที่ผมต้องการครับผม



อย่างไรก็ดีขอบคุณอาจารย์มากครับ
#2
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^