PHP定义函数逻辑

时间:2014-03-24 22:38:15

标签: php

我刚开始学习php,我想知道有人可以帮助我解决定义函数的逻辑问题。我似乎无法绕过它。

简单示例:

<?php

function hello($word) {
  echo "Hello $word";
}

  $name = "John";
  strtolower(hello($name))

?>

我知道如果我在函数中使用return而不是echo,然后在定义函数之外回显它,&#34; strtolower&#34;适用,但在这个例子中它并不适用。我不知道php是如何解释它的。提前谢谢。

1 个答案:

答案 0 :(得分:6)

想象一个功能是一盒未知内容。你把一些东西放进去了,这意味着你有参数以及返回的东西

在您的代码示例中,您不返回任何内容,而是echo一些字符​​串。

function hello($word) {
//             ^ parameter
  return "Hello $word";
}

$name = "John";
strtolower(hello($name));

为了进一步解释,您可以通过以下方式查看原始代码:

echo strtolower(hello("John"));
     ^          ^--- call hello("John")
     |                something happens (your echo)
     |               hello() ended without return, return NULL by default
     |--- call strtolower( NULL )
            something happens
          strtolower() returned ""

但你希望它是这样的:

echo strtolower(hello("John"));
     ^          ^--- call hello("John")
     |                something happens
     |               hello() return "Hello John"
     |--- call strtolower("Hello John")
            something happens
          strtolower() returned "hello john"