将函数与变量组合

时间:2018-02-07 16:28:32

标签: php

我尝试将函数与变量组合以创建单个语句。我想出了这个:

<?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();

但是我一直得到同样的结果();功能出现在最顶端。然后我尝试在页面顶部放置一个变量,包括这个但没有区别。

我假设我错过了在回音函数中调用函数的错误吗?

2 个答案:

答案 0 :(得分:0)

你可以简单地追加一个字符串并从函数中返回它:

$format = '("%s", "%s", "%s")';
$values = "";

    if(isset(${"doc" . $x})){
        $values .= sprintf($format, $id, $event_id, ${"doc" . $x});
    }

return $values;

答案 1 :(得分:0)

您已经混淆了输出,在数据的意义上显示在屏幕上或返回到网络浏览器;使用函数的结果返回到调用它的代码的值

比较这些手册页:

  • echo:输出一个或多个字符串。
  • return / Returning values:结束当前函数的执行,并向调用代码返回一个值。

您的vars()函数计算代码中其他地方使用的值;它不应该输出那个值,而是返回它以便以任何你想要的方式使用。