Php 是否可以更改回波输出的位置?

Php 是否可以更改回波输出的位置?,php,echo,Php,Echo,我想知道是否可以将回声输出到变量中。我的意思是echo接受多个参数,因此我可以使用echo输出如下内容: echo 'Welcome ', $name, ', we are here to help!'; 我发现它比串接字符串更干净、更容易维护,而且我无法忍受复杂的语法。 是否可以使echo仅返回一个值?所以我可以做一些类似的事情 $string_not_meant_for_being_displayed = echo('Lorem', $ipsum); 或者,是否可以创建一个接受无穷多个参

我想知道是否可以将回声输出到变量中。我的意思是echo接受多个参数,因此我可以使用echo输出如下内容:

echo 'Welcome ', $name, ', we are here to help!';
我发现它比串接字符串更干净、更容易维护,而且我无法忍受复杂的语法。 是否可以使echo仅返回一个值?所以我可以做一些类似的事情

$string_not_meant_for_being_displayed = echo('Lorem', $ipsum);
或者,是否可以创建一个接受无穷多个参数的函数


性能实际上不是一个问题。

是的,可以创建一个具有无限多个参数的函数。只需使用
func\u num\u args()
即可获得提供的参数数

function abcd(){
     $numargs = func_num_args();
     echo "Number of arguments: $numargs\n";
}

abcd(1,2,3,4,5,6);

为什么要将echo存储到变量中

要使用多个参数,请使用双引号语法:

echo“欢迎$firstname$lastname。我们是来帮忙的!”


我对你的问题有点困惑但关于我对它的理解

在函数内部,使用return而不是echo

例如,你有一个函数

function myFunction()
{
     $name = "Leonardo";

     return $name;
}

在这种情况下,您可以使用返回值作为变量。所以$name变量现在的值是“Leonardo”

用户
sprintf
vsprintf
printf

如果必须使用echo,我相信您希望研究使用输出缓冲:和

示例:

ob_start();
echo "This is a test";
$string_not_meant_to_be_displayed = ob_get_flush();

像这样的东西怎么了

$name='Goober';
$thing="Welcome $name, we are here to help!";
echo $thing;
echo "\n";
这个怎么样

<?php

function extended_echo($text, $values) {
  $count = 1;
  foreach ($values as $values) {
    $text = preg_replace("#@" . $count . "@#", $values, $text);
    $count++;
  }
  return $text;
}

$myValues = array();
$myValues[0] = 'TechNew.In';
$myValues[2] = 'tech';
$myValues[3] = 'dino babu';

$myText = "Hello, @1@ is an awesome @2@ website by @3@.";

echo extended_echo($myText, $myValues);
?>

我能够解决创建另一个函数的问题,如下所示:

function ee(){
     foreach(func_get_args() as $arg) {
        $v .= $arg;
     }
     return $v;
}

$name = "John";
echo ee("Welcome ", $name, ", we are here to help");
$string_not_meant_to_be_displayed = ee("His name is ", $name);

这样,我可以像echo一样使用多个参数,但如果需要,可以将其输出到其他地方。

我想您可以通过类对象来实现这一点。感谢您的建议,我能够使用它创建函数。这是因为echo使用多个参数,正如我所说,我觉得串接字符串和使用双引号的语法不是很清楚。很好的解决方案。我对它进行了修改,以便可以像我的示例一样使用它。我觉得双引号语法并不干净(使用一些变量可以很干净,但使用数组时会变得一团糟,而且我不能在不连接的情况下放置函数返回的值)。
function ee(){
     foreach(func_get_args() as $arg) {
        $v .= $arg;
     }
     return $v;
}

$name = "John";
echo ee("Welcome ", $name, ", we are here to help");
$string_not_meant_to_be_displayed = ee("His name is ", $name);