我编写了这个php函数,用于在下拉选项标记中动态插入默认日期。在我的函数pickDate中,我用双引号回显了最后的字符串。然后在我的代码中,我有一个for循环,它产生一个新的字符串,并在字符串中我试图调用我的函数。
我的问题是,当我在我的字符串中调用pickDate()
时,它会呈现pickdate()
(字面意思),而不是函数的结果。看看我的代码,我的问题是:如何在双引号括起的字符串中调用函数。
以下是我的功能:
<?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
?>
我的功能正常。我想知道如何在下面的for循环中的字符串中调用它:
<?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()
结果放在表中。我喜欢它是如何被双引号包围的。有人可以告诉我如何在字符串中正确调用函数,而不必更改我的字符串。
答案 0 :(得分:4)
替换它:
$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>";
有了这个:
$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>";
上面唯一需要改变的是使用连接运算符(点)将pickDate()
函数与字符串的其余部分隔离开来。此外,为了使其正常工作,您的pickDate()
函数必须返回其结果而不是直接输出,否则只要定义$displayFolder
,它就会输出其内容。要解决此问题,请将其替换为:
echo "$monthOption";
有了这个:
return $monthOption;
答案 1 :(得分:1)
而不是
echo "$monthOption";
尝试
return $monthOption;
而不是
$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>";
尝试
$displayFolder .="<form action='gallery.php' enctype='multipart/form-data' method='post' name='editPic' id='editPic'><tr><td>";
$displayFolder .=pickDate();
$displayFolder .="<input type ='text' name='year' size='4'maxlength='4'
value='$year'/></form></td> </tr>";
答案 2 :(得分:0)
Concat php函数在字符串中
$str = "left string".pickDate()."right string";