分配给变量时的PHP执行函数

时间:2014-08-04 16:25:51

标签: php function variable-assignment

我在返回数组之前有一个'echos'函数。将该函数分配给下面的变量时,它会执行输出echo的函数。这个预期的行为,因为我认为分配给变量应该只做那个,分配?感谢

 function check($link) {
 //.....
  echo "some text ";
 return $array;

}

 $test = check($link);

5 个答案:

答案 0 :(得分:0)

它逐行执行,所以当它被echo "some text ";打印时,它会返回数组。

答案 1 :(得分:0)

是的,这是预期的行为。您正在创建副作用(回显),同时还分配给变量。您正在同时执行所谓的查询和命令,这是完全合法的。

答案 2 :(得分:0)

当你为一个变量分配一个函数时,php正在执行的是执行函数以获取其返回值,然后将该值赋给变量。

所以php执行你的函数(因此执行echo语句),然后将返回值($ array)赋给$ test。

答案 3 :(得分:0)

PHP解释器将在您的函数中执行任何操作。 echo函数相当于Java中的System.out.print,C#中的Console.WriteLine和C ++中的cout。这就像将一系列文本写入标准输出一样。这里唯一的区别是,您使用客户端的Web浏览器而不是控制台,因此提到的字符序列将被发送回HTTP响应正文中的浏览器。

答案 4 :(得分:0)

你是对的。

在PHP中,尽管看起来很奇怪,但它确实如此。

但是,作为编程设计,强烈建议将显示与编程逻辑分开:

/* array */ function check($link) {
  /* array */ $Result = array();

  //...

  $Result[] = "Sun";

  //...

  $Result[] = "Mercury";
  $Result[] = "Venus";
  $Result[] = "Earth";

  //...

  return $Result;
}

/* array */ $test = check($link);

但是,有时,直接打印到浏览器控制台,可能会有帮助,以便进行调试:

/* array */ function check($link) {
  /* array */ $Result = array();

  //...

  // uncomment, just in severe cases
  //echo("link: [" . $link . "]");

  //...

  $Result[] = "Sun";

  //...

  $Result[] = "Mercury";
  $Result[] = "Venus";
  $Result[] = "Earth";

  //...

  return $Result;
}

/* array */ $test = check($link);
只有我的2美分,干杯。