Php 视图内的Codeigniter变量函数
我在视图中有一个函数(我嵌套了代码,所以没有其他选择)。 我的问题是因为我想在函数中添加一些变量Php 视图内的Codeigniter变量函数,php,codeigniter,Php,Codeigniter,我在视图中有一个函数(我嵌套了代码,所以没有其他选择)。 我的问题是因为我想在函数中添加一些变量 <div> <?php _list($data); ?> </div> <?php echo $pre; // Perfect, it works function _list($data) { global $pre; foreach ($data as $row) { echo $pre." ".$row['ti
<div>
<?php _list($data); ?>
</div>
<?php
echo $pre; // Perfect, it works
function _list($data) {
global $pre;
foreach ($data as $row) {
echo $pre." ".$row['title']; // output ' title' without $pre var
if (isset($row['childrens']) && is_array($row['childrens'])) _list($row['childrens']);
}
}
?>
我无法访问函数中的var
<div>
<?php _list($data); ?>
</div>
<?php
echo $pre; // Perfect, it works
function _list($data) {
global $pre;
foreach ($data as $row) {
echo $pre." ".$row['title']; // output ' title' without $pre var
if (isset($row['childrens']) && is_array($row['childrens'])) _list($row['childrens']);
}
}
?>
简单。。。只需如下定义函数:
function _list($data, $pre=NULL)
然后在函数内部,您可以检查$pre是否为NULL,然后在其他地方搜索它。。。在函数中使用global语句是不可取的
另一方面,您可以定义('pre',$pre)代码>并使用在函数中创建的前置常量。。。同样不可取,但这对你的例子很有用
稍后编辑:在助手中定义函数
我不知道为什么我忘了首先提出定义视图中的函数是很奇怪的。使用全局变量会使情况变得更糟
也许您应该避免使用以下全局函数:
<div>
<?php
foreach($data as $row){
_list($pre, $row);
}
?>
</div>
<?php
function _list($pre, $row) {
echo $pre." ".$row['title'];
if (isset($row['childrens']) && is_array($row['childrens'])){
foreach($row['childrens'] as $child){
_list($pre, $child);
}
}
}
?>
顺便说一句,在助手中定义函数会更好
它们有什么帮助我想你可以添加一个参数作为function\u list($data,$pre)
。哪里定义了$pre?在控制器中?