Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用函数创建模板以减少PHP中的冗余_Php_Html_Function_Templates - Fatal编程技术网

使用函数创建模板以减少PHP中的冗余

使用函数创建模板以减少PHP中的冗余,php,html,function,templates,Php,Html,Function,Templates,我从零开始写一个网站是为了好玩(作为一个来自C++的网络开发新手),我注意到我的很多页面都有相同的代码;实际上是95%。所以我想在PHP中创建一个函数,以最小化我的网站项目中的冗余代码。类似于我们在任何其他语言中如何使用函数,C++,java;等等,我想制作一个函数,将参数传递到一个被调用的php文件中,以编写特定的网页 这是我想要使各个页面看起来像的代码。我不想在多个文件中有100多行相同的代码,我只想做类似的事情,并将其传递到template.php文件中,使其更高效或更小(冗余代码更少)

我从零开始写一个网站是为了好玩(作为一个来自C++的网络开发新手),我注意到我的很多页面都有相同的代码;实际上是95%。所以我想在PHP中创建一个函数,以最小化我的网站项目中的冗余代码。类似于我们在任何其他语言中如何使用函数,C++,java;等等,我想制作一个函数,将参数传递到一个被调用的php文件中,以编写特定的网页

这是我想要使各个页面看起来像的代码。我不想在多个文件中有100多行相同的代码,我只想做类似的事情,并将其传递到template.php文件中,使其更高效或更小(冗余代码更少)

这就是我想要使用的模板,我在其中传递值,设置它们,然后在声明的PHP下的html代码中使用它

<?php 
$this_title = "";
$this_author = "";
$this_date = "";
$this_article = "";

function setDependencies($title, $author, $date, $article){
    $this_title = $title;
    $this_author = $author;
    $this_date = $date;
    $this_article = $article;
}
?>

<body>
<p>Written by <?php $this_author ?> on <?php $this_date ?></p>
</body>

作者

body标签中的代码“writeby…”只是一行代码,我过去经常看到它在被调用(包括在内)后是否会显示,但它最后写的是“writeby on”

我意识到这其中的主要问题是include('template.php')函数包含了template.php的所有内容,然后执行setDependencies(),所以函数调用什么也没做

我尝试了两次包含template.php,第一次是包含setDependencies(),第二次是执行html,但结果出现了错误,因为它两次声明setDependencies,网站不喜欢这样。我还尝试创建三个文件,而不是两个,在其中我声明了title、author、date和article的值,并将其推送到第二个文件,第三个文件在其中调用html部分所需的值,然后我在第一个文件中调用了它,但结果和调用同一个函数miltiple times的结果相同


任何帮助都将不胜感激!谢谢大家!

为了避免“函数已声明”的错误,可以使用“函数_存在”检查函数是否不存在,然后声明函数。。如果(!function_exists('myfunction'){function myfunction(){..mycode..}},我只需将
template.php
中设置变量的代码修改为类似
if(!isset($this_title))$this_title=“”
<?php 
$this_title = "";
$this_author = "";
$this_date = "";
$this_article = "";

function setDependencies($title, $author, $date, $article){
    $this_title = $title;
    $this_author = $author;
    $this_date = $date;
    $this_article = $article;
}
?>

<body>
<p>Written by <?php $this_author ?> on <?php $this_date ?></p>
</body>