函数总是在回声期间首先执行? - php

为什么我可以通过一次调用echo来获取此代码作为hello Sam来编写此代码?

这是PHP代码:

<?php  

    function moo() {
        echo 'Sam';
    }

    echo 'hello ' . moo();

?>

输出为Samhello
解析为R to L。我可以通过在2条单独的行上写echo来实现所需的输出:

<?php  

    function moo() {
        echo 'Sam';
    }

    echo 'hello ';
    echo moo();

?>

但是有一种方法可以做到这一点吗?

参考方案

不用功能echo,而是让它返回要打印的字符串。然后让调用者决定如何处理它-在这种情况下,echo它:

function moo() {
    return 'Sam';
}

echo 'hello ' . moo();

编辑:添加说明(不是答案的作者)而不是发表评论。

“返回”和内联concat之间的区别在于,要使初始函数(echo语句)起作用,它需要在输出初始echo语句之前运行该函数(在您的代码中为moo())。

这与以下示例没有区别:

echo number_format(get_something_from_database_which_is_a_number());

您希望函数get_something_from_database_which_is_a_number()返回number_format()函数之前的值,然后对其进行格式化。

如果使用return语句,则函数本身将运行,但是return您的字符串将返回到初始函数调用(在您的情况下为echo)语句。

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…