从“内部”传递变量;如果;块到另一个PHP文件

从“内部”传递变量;如果;块到另一个PHP文件,php,Php,这里有一个完整的数据库。 我试图将我的观点和模型分开。当我尝试从模型中的数据库中读取数据并调用视图中保存结果的变量(使用include()函数)时,我会得到变量not defined error或空值。 因此View.php看起来像: View.php <?php include("Model.php")?> <p id="p1"><?php echo $var ?> </p> **此选项产生错误$var未定义 Model.php ($var在

这里有一个完整的数据库。 我试图将我的观点和模型分开。当我尝试从模型中的数据库中读取数据并调用视图中保存结果的变量(使用include()函数)时,我会得到变量not defined error或空值。 因此View.php看起来像:

View.php

<?php include("Model.php")?> 
<p id="p1"><?php echo $var ?> </p>
**此选项产生错误$var未定义

Model.php ($var在“if”块之外声明和初始化):

**此选项产生回音空白页

Model.php (将$var声明为“如果”块之外的全局变量): :

**这个选项也会产生回音空白页面

编辑 发送请求的表单位于View.php中(因此我希望在表单所在的同一页面上收到结果…)


编辑2 表单位于view.php中(这也是我希望显示结果的地方)


我设法让它工作的唯一方法是将两个文件合并成一个文件,然后我可以在文件的“model”部分和“view”部分之间自由调用变量


我将非常感谢您对如何解决此问题的任何见解。

View.php
中更改您的操作url应该是

<form action="View.php" method="post">


既然你的
Model.php
包含在
View.php中
include(“Model.php”)
你发送post请求吗?如果你想在php中检测HTTP post,那么它类似于
If($\u服务器['request\u方法']='post')
do var\u dump($\u post);在您的if条件之前,检查您是否在其中获得“提交”。如果您发布到Model.php,如何包含View.php以显示结果?状态只在请求的生命周期内存在于PHP变量中。不,我认为Alex的回答是正确的。您的模型是视图的依赖项,在MVC术语中,您不直接公开模型,它们是用来处理业务逻辑/规则的,因此您永远不会让浏览器请求这样的模型。现在,你的View.php就像控制器和视图一样(对于一个小型php系统来说,这实际上并不是那么糟糕)!非常感谢你,亚历克斯。昨晚我想弄清楚这一点,但还是把头发拔了出来。还感谢@Lee Kowalkowski提出中间控制概念。我已经读过这方面的内容,并将尝试实现这一点,看看它将如何进行。
$var = "";

if (isset($_POST['submit'])){
    // reading from database
    $var = result of the query

}
global $var;

if (isset($_POST['submit'])){
    // reading from database
    $var = result of the query

}
<form action="Model.php", method="post">
<form action="Model.php" method="post">
<input type="text" name="entername">
<input type="submit" name="submit">
<form action="View.php" method="post">