[英]php form drop down menu works normally but not when making it into a function
我目前正在閱讀PHP教程,並創建了一個表單下拉菜單。 我試圖通過將一些代碼塊移到函數中來提高代碼效率。
為什么以下代碼在使其成為函數時不起作用(示例1),但在其他情況下卻起作用(示例2)?
范例1:
<div id="leftnav">
<div class="search">
<form name="search" method="get" action="search.html" id="search">
<input type="text" value="keywords" name="keyword" class="s0" />
<br />
<select name="title" class="s2">
<?php
productSelection(); // This is the function I am referring to
?>
</select>
<br />
<input type="submit" name="search" value="Search Products" class="button marT5" />
<input type="hidden" name="page" value="search" />
</form>
該函數定義如下:
productSelection() {
sort($titles, SORT_STRING); // Sort array of products
foreach ($titles as $deserts) {
printf("<option value=\"%s\">%s</option>", $deserts, $deserts);
}
范例2:
<form name="search" method="get" action="search.html" id="search">
<input type="text" value="keywords" name="keyword" class="s0" />
<br />
<select name="title" class="s2">
<?php
sort($titles, SORT_STRING); // Sort array of products
foreach ($titles as $deserts) {
printf("<option value=\"%s\">%s</option>", $deserts, $deserts);
}
?>
</select>
<br />
<input type="submit" name="search" value="Search Products" class="button marT5" />
<input type="hidden" name="page" value="search" />
</form>
$titles
無法使用,因為它超出了范圍 。 全局變量在函數內部不可用,除非您將它們作為參數傳遞(首選)或使用global
關鍵字(不推薦)。
productSelection($titles) {
sort($titles, SORT_STRING); // Sort array of products
foreach ($titles as $deserts) {
printf("<option value=\"%s\">%s</option>", $deserts, $deserts);
}
}
當調用它時:
<?php
productSelection($titles);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.