我寫了這個php函數來動態地將默認日期插入到下拉選項標籤中。在我所謂的pickDate函數中,用雙引號在末尾回顯字符串。然後在我的代碼中,我有一個for循環,產生一個新的字符串,並在我想要調用我的函數的字符串內部。 我的問題是,當我在我的字符串中調用pickDate()
時,它將呈現pickdate()
(字面上),而不是函數的結果。看着我的代碼,我的問題是:如何在由雙引號括起來的字符串中調用函數。如何使用PHP調用字符串中的函數
這裏是我的函數看起來像:
<?php
function pickDate() {
$dayArray=array();
global $month;
global $day;
$monthArray=array();
$d=1;
$monthArray=array('January','February','March','April','May','June','July','August','September','October','November','December');
$monthOption .="<select name='month'>";
for($i=0; $i<31; $i++){
array_push($dayArray, "$d");
$d++;
}
for($i=0; $i<12; $i++){
$selected="";
if ($month == "$monthArray[$i]") {
$selected="selected='selected'";
}
$monthOption .="<option value='$monthArray[$i]'
$selected>$monthArray[$i] </option>";
}
$monthOption.="</select> <select name='day'>";
for($i=0; $i<31; $i++){
$selected="";
if ($day == "$dayArray[$i]") {
$selected="selected='selected'";
}
$monthOption .="<option value='$dayArray[$i]'$selected>$dayArray[$i] </option>";
}
$monthOption.="</select>";
echo "$monthOption";
}//end function
?>
我的功能工作正常。我想知道我怎麼能在這稱之爲串在以下循環:
<?php
$xml = simplexml_load_file("gallery.xml");
$c1=count($xml->Picture);
for($i=0; $i<$c1; $i++){
$month =(string)$xml->Picture[$i]->picDate->month;
$day =(string)$xml->Picture[$i]->picDate->day;
$year =(string)$xml->Picture[$i]->picDate->year;
$displayFolder .="<form action='gallery.php' enctype='multipart/form-data' method='post' name='editPic'
id='editPic'><tr><td>
pickDate()
<input type ='text' name='year' size='4'maxlength='4'
value='$year'/></form></td> </tr>";
}
?>
然後我輸出一個HTML表格下方的displayfolder字符串:
<table border= "1px"><tr><td><?php
print"$displayFolder";?></table>
所以問題再次呼喚pickDate函數導致它在一個字符串中,我想知道如何將pickDate()
結果放在表中。我喜歡它是如何被雙引號包圍的。有人可以告訴我如何在字符串中正確調用函數,而不必更改我的字符串。
作爲額外的提示,而不是依靠全局變量,只需傳遞必要的p參數到你的函數:定義爲'函數pickDate($ month,$ day){...}'並且調用爲'pickDate($ month,$ day);'。這樣,你可以用不同的變量和其他函數等多次調用它。 – IMSoP
非常感謝大家的快速提示和答案。這是有道理的。它很好地瞭解更多功能如何工作。我希望這個功能足夠清晰,對除我以外的人有用。 stackoverflow很棒。 – james
@james如果答案適用於您或解決了問題,請將該答案標記爲可幫助其他人的答案;) – iJade