1

我有以下问题。我有声明变量的文件 variable.php:

<?php
  $animal = "cat";
?>

和文件 b.php,我想在函数中使用这个变量

<?php
  include_once 'a.php';

  function section()
  {
     $html = "<b>" . $animal "</b>";
     return $html;
  }
?>

和文件 c.php 我正在使用我的函数section()

<?php
  require_once 'b.php';
  echo section();
?>

我有一条错误消息,即variable $animal does not exist in file b.php. 为什么以及我可以在这里做什么?

最好的问候, 达格纳

4

5 回答 5

8

变量具有函数作用域。您没有在函数$animal section声明变量,因此它在函数内不可用section

将其传递给函数以使值在那里可用:

function section($animal) {
   $html = "<b>" . $animal "</b>";
   return $html;
}

require_once 'a.php';
require_once 'b.php';
echo section($animal);
于 2012-06-14T14:52:08.217 回答
3

发送$animal;到函数:

function section($animal)
  {
     $html = "<b>" . $animal "</b>";
     return $html;
  }
于 2012-06-14T14:50:37.887 回答
1
include_once 'a.php';

应该

include_once 'variable.php';
于 2012-06-14T14:52:19.697 回答
1

另一种选择是使用类,例如:

class vars{
  public static $sAnimal = 'cat';
}

然后在你的函数中,使用该变量:

public function section()
{
  return "<B>".vars::$sAnimal."</b>";
}
于 2012-06-14T14:56:44.017 回答
0

如果它是一个常量,你可以使用 PHP 的定义函数。

一个.php:

 <?php
    define("ANIMAL", "cat");
 ?>

b.php:

 <?php
    include_once 'a.php';
    function section() {
      $html = "<b>" . ANIMAL . "</b>";
      return $html;
    }
 ?>
于 2012-06-14T14:59:51.523 回答