将 PHP includes() 存储到内存中
Storing PHP includes() into memory
我正在构建一个动态 table,它将被编辑table 并根据其中的数据类型进行格式化。例如,一列包含颜色,一列包含评级,一列包含日期。
数据库中存储的数据是文本(#009900 或 4 或 1435856109),但信息的类型将决定其显示和编辑方式。单击颜色单元格打开颜色选择器,单击日期打开日历日期选择器等。
为了实现这一点,我将遍历行和单元格并包含 ("edit_color.php" OR "edit_date.php") 以调出合适的编辑器。当每个单元格包含一个单独的 php 文件的数十行或数百行时,问题就来了。
有没有办法将文件一次包含到内存中并一遍又一遍地使用代码,而不必在每个单元格循环中都包含它?
这是代码的基本思想
<table>
<?php
foreach ($rows as $row){
echo "<tr>";
foreach ($cells as $cell){
echo "<td>";
include ("/cells/edit_".$cell->type.".php");
echo "</td>";
}
echo "</tr>";
}
<table>
//edit_date.php\
<div class="cell_name"><?php echo date("D-M-Y",$cell->data)?></div>
<a href="#" onClick="openCalendar()">Pick Date</a>
还有很多事情要做,但我不想在每个单元格中都包含每个 edit_[type].php
。还有哪些其他选择?
这是作为网络应用提供的吗?
如果是,您可能想探索在 Web 服务器级别缓存文件,而不是直接在 PHP。
例如,如果您使用的是 Apache:
http://httpd.apache.org/docs/2.2/caching.html
简短的回答是使用 include_once()。
但是,您永远不应该在这样的循环中包含代码 - 这是非常糟糕的形式。
您应该使用 include_once 和自动加载...(以及表示和代码的分离,但这太多了,无法在这里解释)。
改用函数。
例如你有
foo.php
<?php
echo 'hello from foo';
你包括了无数次。相反,有这个:
foo.php:
<?php
function foo() {
return 'hello from foo';
}
包含一次,然后在需要的任何地方调用foo()
:
<td><?php echo foo(); ?><</td>
我正在构建一个动态 table,它将被编辑table 并根据其中的数据类型进行格式化。例如,一列包含颜色,一列包含评级,一列包含日期。
数据库中存储的数据是文本(#009900 或 4 或 1435856109),但信息的类型将决定其显示和编辑方式。单击颜色单元格打开颜色选择器,单击日期打开日历日期选择器等。
为了实现这一点,我将遍历行和单元格并包含 ("edit_color.php" OR "edit_date.php") 以调出合适的编辑器。当每个单元格包含一个单独的 php 文件的数十行或数百行时,问题就来了。
有没有办法将文件一次包含到内存中并一遍又一遍地使用代码,而不必在每个单元格循环中都包含它?
这是代码的基本思想
<table>
<?php
foreach ($rows as $row){
echo "<tr>";
foreach ($cells as $cell){
echo "<td>";
include ("/cells/edit_".$cell->type.".php");
echo "</td>";
}
echo "</tr>";
}
<table>
//edit_date.php\
<div class="cell_name"><?php echo date("D-M-Y",$cell->data)?></div>
<a href="#" onClick="openCalendar()">Pick Date</a>
还有很多事情要做,但我不想在每个单元格中都包含每个 edit_[type].php
。还有哪些其他选择?
这是作为网络应用提供的吗?
如果是,您可能想探索在 Web 服务器级别缓存文件,而不是直接在 PHP。
例如,如果您使用的是 Apache: http://httpd.apache.org/docs/2.2/caching.html
简短的回答是使用 include_once()。
但是,您永远不应该在这样的循环中包含代码 - 这是非常糟糕的形式。
您应该使用 include_once 和自动加载...(以及表示和代码的分离,但这太多了,无法在这里解释)。
改用函数。
例如你有
foo.php
<?php
echo 'hello from foo';
你包括了无数次。相反,有这个:
foo.php:
<?php
function foo() {
return 'hello from foo';
}
包含一次,然后在需要的任何地方调用foo()
:
<td><?php echo foo(); ?><</td>