从不同的位置向函数发送参数


send arguments to function from different places?

我有一个函数来获取一些用户值。用户名和电子邮箱

现在我想让值在两个表单字段中回显。

这是可能的还是我需要两个不同的函数?

我在想这样的事情

        function fetch_user_value($username,$email){
        global $db;
        $query = $db->query("SELECT `username`,`email` FROM `user` WHERE id = {$_SESSION['uid']} ");
        $row = $query->fetch(PDO::FETCH_ASSOC);
        echo $row['username'];
        echo $row['email'];
        } 
    <input type='text' name='username' id='username' value="<?php echo fetch_user_value('username'); ?>" />

<input type='text' name='email' id='email'  value="<?php echo fetch_user_value('email'); ?>" /> 

试试这个:

//删除你传递的参数,因为你只根据sessionid获取值

function fetch_user_value(){
  global $db;
  $query = $db->query("SELECT `username`,`email` FROM `user` WHERE id = {$_SESSION['uid']} ");
  $row = $query->fetch(PDO::FETCH_ASSOC);
  return $row;
}

//不调用两次,只调用一次

$userD = fetch_user_value();
<input type='text' name='username' id='username' value="<?php echo $userD['username']; ?>" />
<input type='text' name='email' id='email'  value="<?php echo $userD['email']; ?>" /> 

虽然user868766的答案是正确的,但是考虑使这样的函数更有用。一般用途,用于从任意查询中返回所需的结果:

$user = $db->getRow("SELECT username,email FROM user WHERE id =?i",$_SESSION['uid']);

有了好的抽象库,在这种情况下你不需要任何指定的函数

只使用一个函数,如下:

  function fetch_user_value($field){
     global $db;
     $query = $db->query("SELECT ".$field." FROM `user` WHERE id = {$_SESSION['uid']} ");
     $row = $query->fetch(PDO::FETCH_ASSOC);
     echo $row[$field];
    }