具有奇怪结果的 PHP include() 函数

a PHP include() function with a strange outcome

我最近才开始学习PHP,遇到了一个令人沮丧的问题,代码看起来不错,但就是行不通,连教我的人都不知道是什么原因造成的.下面我把我的代码贴给你。

<?php
header("content-type: text/html; charset = UTF-8");
$con = new mysqli();
$con -> connect("localhost", "root" ,"");
$con -> select_db("test_db");
$con -> query("set names UTF8");
$query = $con -> query("SELECT * FROM TITLES LIMIT 0,2");
$num = $query -> num_rows;
for ($i=1 ; $i <= $num; $i++) 
{ 
    $result = $query -> fetch_array();
    echo "<table style ='float: left'>";
    echo "<tr><th>".$result["TITLE"]."</th><tr>";
    echo "<tr><td>";
    include("$i.php");
    echo "</td></tr>";
    echo "</table>";
}
?>

结果变成这样:

顺便说一句,我在 MAC 中使用 XAMPP 7.0.1。

<?php
header("content-tupe: text/html; charset = UTF-8");
$con = new mysqli();
$con -> connect("localhost", "root" ,"");
$con -> select_db("test_db");
$con -> query("set names UTF8");
$query = $con -> query("SELECT * FROM PHP_MANUAL LIMIT 0,6");
?>
<ul>
<?php
  while ($result = $query -> fetch_array()) 
  {
      echo "<li>".$result["CONTENT"]."</li>";
  }
?>
</ul>
<?php
header("content-type: text/html; charset = UTF-8");
$con = new mysqli();
$con -> connect("localhost", "root" ,"");
$con -> select_db("test_db");
$con -> query("set names UTF8");
$query = $con -> query("SELECT * FROM TITLES LIMIT 0,2");
$i = 0;
while($result = $query -> fetch_assoc())
{ 
    $i++;
    echo "<table style ='float: left'>";
    echo "<tr><th>".$result["TITLE"]."</th><tr>";
    echo "<tr><td>";
    include("$i.php");
    echo "</td></tr>";
    echo "</table>";
}
?>

使用 while 遍历行。

当您将一个文件包含在另一个 PHP 文件中时,包含文件中的所有变量都将处于活动状态并可访问以供操作。

在您的情况下,您使用的是 $query 和 $result 变量,它们 覆盖 您开始的变量。所以 TITLES 的 $query 已经改变,因此即使你想使用 unset() 它也不会工作。

示例:基本包含示例

vars.php

<?php

$color = 'green';
$fruit = 'apple';

?>

test.php

$color = 'yellow';
$fruit = 'banana';

echo "A $color $fruit"; // A yellow banana

include 'vars.php';

echo "A $color $fruit"; // A green apple

?>

来源:http://php.net/manual/en/function.include.php

您还可能希望将 $con 变量放入单独的 PHP 文件中并包含一次。详细了解 PHP 包括:

http://php.net/manual/en/function.include-once.php