脚本宝典收集整理的这篇文章主要介绍了php – Codeigniter:从视图中调用视图时的变量范围.奇,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
>如果变量最初是从控制器传递的,则无需执行某些操作即可将变量从视图传递到视图.
>如果变量是在视图中声明的,我必须将变量从视图显式传递给视图. (例如:$this-> load-> view(“hoge”,$data);)
我发现第二种情况有点奇怪,因为我的理解是$this-> load-> view()是PHP include()的codeignITer版本,它不需要我明确地传递变量.
任何人都可以猜测/为什么他们这样做了一点点?
/* * Extract and cache VARiables * * You can either set variables using the dedicated $this->load_vars() * function or via the second parameter of this function. We'll merge * the two tyPEs and cache them so that views that are embedded within * other views can have access to these variables. */ if (is_array($_ci_vars)) { $this->_ci_cached_vars = array_merge($this->_ci_cached_vars,$_ci_vars); } extract($this->_ci_cached_vars);
但是你的本地声明的变量不是..因为它们没有被传递给下一个view()调用.
请注意,它合并了变量,因此从技术上讲,您可以将在顶视图中更改的变量传递给子视图,其余变量将自动继承.
恕我直言,我认为为了清晰和其他潜在的人阅读你的代码,最好总是明确传递你的子视图将需要的所有变量..代码变得更容易阅读/调试.
注意:缓存的副作用是,如果你有2个子视图,传递给第一个视图的变量将被缓存并自动传递给第二个视图……这有时会导致调试问题.
以上是脚本宝典为你收集整理的php – Codeigniter:从视图中调用视图时的变量范围.奇全部内容,希望文章能够帮你解决php – Codeigniter:从视图中调用视图时的变量范围.奇所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。