调用函数,回显结果

时间:2010-12-03 14:45:24

标签: php function

我正在尝试将此函数用于返回服务器上文件位置的位置。在编码的底部,我展示了我是如何尝试在其他页面中显示编码的。在回调最后一行编码时,我是否正确,以便在调用函数时显示它?

function record_loc($id,$type) 
{
  $recdir = mysql_result(mysql_query(
      "SELECT rec_loc FROM names WHERE com_id = '".$id."'"), 0 , "rec_loc");

  $ver = ($type == 'n' ? '-n.wav' : '-s.wav');
  // echo '/doc_rec/' . $recdir . '/' . $id . $ver;
return '/doc_rec/' . $recdir . '/' . $id . $ver;
} 

// echo record_loc(120,n); or <?= record_loc(120,n) 
?>

4 个答案:

答案 0 :(得分:3)

使用returnecho, print, print_r, sprint等输出运算符之间存在功能差异。

请点击此处查看return,此处查看echo

即:

  

'return'将其参数作为返回   函数调用的值

     

'echo'输出一个或多个字符串

因此,在函数中返回将结果作为可以赋予变量的值传递,即$myvar=myfunction();,然后您需要回显$myvar(或者回显myfunction();),而在函数中使用echo,只需要myfunction();即可完成相同的操作。如果要通过其他操作传递函数的结果,请使用return。

答案 1 :(得分:3)

我不确定我是否理解这个问题。但如果它没有返回任何东西,你就无法回显函数。

这是一个返回值的简单函数:

<?php
function do_stuff() {
    return rand(1, 10);
}

echo do_stuff();
?>

<?= do_stuff() ?>

答案 2 :(得分:2)

实际上,你的例子会输出数据(只是由于语句的简单性),然而真正发生的是函数首先回显,然后执行echo [在这种情况下评论]。 e.g。

function return_some_value(){
  return 'abc';
}
function echo_some_value(){
  echo 'def';
}

echo return_some_value() . echo_some_value();

输出将导致echo_some_value首先显示(并返回null),然后传递给echo以进一步执行。 e.g。

defabc

(虽然你期望abcdef

每个请求

编辑对此答案的评论编辑

function record_loc($id,$type) 
{
  if (($query = mysql_query("SELECT rec_loc FROM names WHERE com_id = '".(int)$id."'")) !== false)
  {
    if (mysql_num_rows($query) > 0)
      return '/doc_rec/'.mysql_result($query,0,'rec_loc').'/'.$id.'-'.($type=='n'?'n':'s').'.wav';
  }
  return 'Error Not Found';
}

请注意,您应检查连接,检查sql错误并验证输入。我没有用尽所有检查,只是让你的代码做你所要求的。

答案 3 :(得分:1)

或者您返回路径并使用echo record_loc(120,n);

或者您回复返回中的路径(如示例)并使用<?php record_loc(120,n) ?>