调用函数时,PHP变量不会在表中回显

bob*_*bob 0 php scope function

我有一个简单的Vars.php页面:

<?php
//Vars.php
$WeekOfDateSelected = date('l, m/d/Y', strtotime($MonthYear));
$NextSundayOfDateSelected = date('l, m/d/Y', strtotime('this Sunday', strtotime($WeekOfDateSelected)));

?>
Run Code Online (Sandbox Code Playgroud)

我有另一个包含Vars.php的PHP并构建一个表:

<html>
<?php
//AnalyticsTest.php

include($_SERVER['DOCUMENT_ROOT']."/~/~/~/~/~/Vars.php");

function WeekTable() {

echo "<table id=\"a\">
<tr>
<th style=\"text-align: center;\"><a href=\"#\">< previous week</a></th>
<th colspan=\"4\" style=\"text-align: center;\"><h2>Week of ";
echo $WeekOfDateSelected;
echo " - "; 
echo $NextSundayOfDateSelected; 
echo "</th>
<th style=\"text-align: center;\"><a href=\"#\">next week ></a></th>
</tr>
</table>";

}

?>

</html>
Run Code Online (Sandbox Code Playgroud)

基本上,当我WeekTable()正确调用所有输出时,除了PHP变量$WeekOfDateSelected$NextSundayOfDateSelected输出空白.

Joh*_*nde 6

您需要将这些变量作为参数传递给该函数.否则他们超出了范围.

function WeekTable($WeekOfDateSelected,$NextSundayOfDateSelected) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

确保在调用函数时传递它们:

 WeekTable($WeekOfDateSelected,$NextSundayOfDateSelected);
Run Code Online (Sandbox Code Playgroud)

你也可以使用global关键字,但这是一个糟糕的编程习惯,所以我不会在这里显示.