在PHP foreach循环之外访问变量
|
在我正在处理的某些代码中,我注意到正在从“ 0”循环外部访问多个变量。
这可以在此特定应用程序的codeigniter视图文件中看到。
例如,一个视图文件:
<?php
foreach ($items as $row):
endforeach;
// HTML / PHP code...
<td>
<?php echo form_checkbox(\'option_1\',\'1\', FALSE); ?>
<?php echo form_hidden(\'weight_unit\', $row->weight_unit); ?>
</td>
// etc...
这行得通(即没有错误),但我想知道这是否会被视为不良做法? (范围等)
有人对此有意见吗,应该只在相应的循环内调用变量吗?
我注意到的另一个问题是视图文件的多个部分是否需要变量:我应该重构为具有多个循环,还是应该有单个foreach / endforeach
以及文件的开始/结尾。
任何建议,不胜感激。谢谢。
没有找到相关结果
已邀请:
4 个回复
郡豪靠暖
显然,您的意思是用5英镑做点什么。 我注意到的另一个问题是,视图文件的多个部分是否需要变量 如果您必须在视图的不同位置遍历循环,则可以。 但是,如果您只需要在某个数组内深入某些信息,则应将其粘贴到一个易于访问的变量中,然后使用它。
捅瓶啡
使其更清晰。
疏腔傻小雹
(如果不需要保持阵列完整),或使用
(如果需要)。 此外,如果记录集的长度发生更改,那么在一个较长的集的上下文中,如果它不是最后一个记录,那么这可能会导致无法预料的后果。
视蕉梁拌客
,会发生什么情况? -您的
变量将具有完全不同的含义-当添加更多代码时,这段代码非常容易受到副作用的影响。 另外,很有可能将来PHP不再支持此行为(这只是我的假设,因为正如您提到的那样,$ row变量超出了您使用它的范围)。 作为一些一般原则: 使用尽可能少的全局变量-很难跟踪,维护和确保正确的值 尽可能减小变量的范围,并仅在非常明确的范围内使用它们 避免使用其他语言完全不自然的边际用例和所谓的功能 最后但并非最不重要的一点是,如果很难编写代码,则应该避免阅读该原则,而应该很难阅读-该原则不会确保您的工作,只是您同事的仇恨