【问题标题】:function wont return value函数不会返回值
【发布时间】:2013-03-25 22:19:52
【问题描述】:
$html = ' some html here <br>';

function sql($mysqli,$html){

        $stmt = $mysqli->prepare("SELECT * FROM `jobs` WHERE `out` is null");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($job_id,$vin,$yr,$mk,$mdl,$color,$miles_in,$miles_out,$quoted,$price,$phone,$customer,$bal,$tax,$msg,$in,$out);

        $stmt = $mysqli->prepare("SELECT * FROM jobs a WHERE a.in between ? and ?");
        $stmt->bind_param('ss', $startday, $endday);

        $startday = '2013-01-01';
        $endday = '2013-12-31';

        $stmt->execute();
        $stmt->store_result();

        $stmt->bind_result($job_id,$vin,$yr,$mk,$mdl,$color,$miles_in,$miles_out,$quoted,$price,$phone,$customer,$bal,$tax,$msg,$in,$out);

        while($stmt->fetch()){

下面是两种不同方法的同一行:注释部分有效,但我无法获得将相同值添加到 html 字符串的函数,然后在完成 php 代码后将其返回给脚本。

    $html.= $vin.' - '.$count.' <br> '; // echo $vin.' - '.$count.' <br> ';

$count++;
        }
        return $html;
}

sql($mysqli,$html);
echo $html;

我的输出是 'some html here' 这是因为字符串是这样定义的。我希望让这个函数添加从 mysql 查询中提取的值,然后将它们添加到一个字符串中,我可以在所有 php.ini 文件的末尾打印出来。 如果我们使用 echo 而不是 $html 连接,函数的输出是

12345 - <br>
123 - 1 <br>
1236485 - 2 <br>

有什么想法吗?

【问题讨论】:

    标签: php string function return


    【解决方案1】:

    那是因为$html是按值传递的,它的新值是从函数本身返回的。

    回显sql() 本身的结果将产生正确的值。

    echo sql($mysqli,$html);
    

    或者,您可以先将新值重新分配给$html

    $html = sql($mysqli, $html);
    echo $html;
    

    【讨论】:

      【解决方案2】:

      通过引用传递:

      function sql($mysqli,&$html){
      

      【讨论】:

        【解决方案3】:

        尝试使用 echo sql($mysqli, $html);

        【讨论】:

          【解决方案4】:

          也许您的问题是您的 $startday 在您的 $endday 之后。顺序与“之间”很重要。此外,您可能还希望在开始日和结束日中包含时间部分,否则如果开始日和结束日是同一日期,您将无法获得当天的结果。像这样:WHERE a.in BETWEEN '2013-04-01 00:00:00' AND '2013-04-01 23:59:59'

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-03-08
            • 1970-01-01
            • 1970-01-01
            • 2016-04-18
            • 2018-03-13
            • 1970-01-01
            相关资源
            最近更新 更多