1

我编写了一个函数来在下拉选项标签中动态插入默认日期。在我调用的函数中,pickDate我在末尾用双引号回显字符串。然后稍后在我的代码中,我有一个 for 循环,它产生一个新字符串,并且在字符串内部我试图调用我的函数。

我的问题是,当我调用pickDate()我的字符串时,它正在渲染pickdate()(字面意思)而不是函数的结果。查看我的代码,我的问题是:如何在双引号包围的字符串中调用函数。

我想知道如何在下面的这个 for 循环中的字符串中调用它:

<?php
$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()结果放入表中。我喜欢它是如何被双引号包围的。有人可以告诉我如何在字符串中正确调用该函数,而不必对我的字符串进行太多更改。

4

3 回答 3

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;
于 2013-09-01T19:23:42.263 回答
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>";
于 2013-09-01T19:25:55.950 回答
0

字符串中的Concat php函数

$str = "left string".pickDate()."right string";
于 2013-09-01T19:38:25.687 回答