我尝试将函数与变量组合以创建单个语句。我想出了这个:
<?php
function vars(){
$x = 0;
$id = 1;
$event_id = 2;
$doc4 = 'Additional';
$doc6 = 'This';
$doc7 = 'That';
while ($x < 100){
if(isset(${"doc" . $x})){
echo '("' . $id . '", "' . $event_id . '", "' . ${"doc" . $x} . '"), ';
}
$x++;
}
}
echo 'INSERT INTO event_docs (id, event_id, doc_type, d) VALUES ' . vars();
返回此内容:
("1", "2", "Additional"), ("1", "2", "This"), ("1", "2", "That"), INSERT INTO event_docs (id, event_id, doc_type, d) VALUES
当我希望它返回时:
INSERT INTO event_docs (id, event_id, doc_type, d) VALUES ("1", "2", "Additional"), ("1", "2", "This"), ("1", "2", "That")
我尝试将其梳理为两个变量,即:
echo $insert . vars();
但是我一直得到同样的结果();功能出现在最顶端。然后我尝试在页面顶部放置一个变量,包括这个但没有区别。
我假设我错过了在回音函数中调用函数的错误吗?
答案 0 :(得分:0)
你可以简单地追加一个字符串并从函数中返回它:
$format = '("%s", "%s", "%s")';
$values = "";
if(isset(${"doc" . $x})){
$values .= sprintf($format, $id, $event_id, ${"doc" . $x});
}
return $values;
答案 1 :(得分:0)
您已经混淆了输出,在数据的意义上显示在屏幕上或返回到网络浏览器;使用函数的结果,返回到调用它的代码的值。
比较这些手册页:
您的vars()
函数计算代码中其他地方使用的值;它不应该输出那个值,而是返回它以便以任何你想要的方式使用。