所以,我需要为我的团队创建这样一个约定。当我们必须将数据从控制器传递到视图时,最好的数据类型是什么?对象还是数组?哪一个更容易管理?是否有任何已经存在的惯例?是否有任何考虑要做? 。感谢。
答案 0 :(得分:2)
这实际上取决于您编程的上下文。如果您要传递可能包含多个值的内容,或者为了使用它,您需要实现一些复杂的逻辑,然后我会亲自将它包装在一个对象中。
数组示例
<?php
for($i = 0; $i < 10; $i++) {
?>
<p><?php echo $arr[$i]; ?></p><?php
}
?>
正如您所看到的,您在视图中所做的一切就是显示它(就像您应该的那样)。这意味着数组很好,在我看来,因为你有一个带有数组的简单代码,输出的复杂性并不能证明对象的开销。
对象示例
<?php
for($i = 0; $i < 10; $i++) {
?>
<p><?php echo $titles[$i]; ?></p>
<p><?php echo $subHeadings[$i]; ?></p>
<p><?php echo $paragraphs[$i]; ?></p>
}
?>
正如你在这里看到的,一个物体可能会让它更愉快。假设我们将其包含在Section
对象中。
class Section {
protected $title;
protected $subHeading;
protected $paragraph;
function __construct($title, $subHeading, $paragraph)
{
this.title = $title;
this.subHeading = $subHeading;
this.paragraph = $paragraph;
}
function __toString()
{
return "<p>this.title</p>
<p>this.subHeading</p>
<p>this.paragraph</p>";
}
}
然后您需要做的就是循环并执行以下操作:
<?php
for($i = 0; $i < 10; $i++) {
?>
<p><?php echo $sections[$i]; ?></p>
}
?>
我的推荐?
如果您想安全地玩,请转到Object
。它更通用; 总是会产生更干净的代码,使维护和阅读更容易;更不用说将您的观点与应用程序的后端完全分离的宝贵资产。从理论上讲,这意味着您可以在不改变视图的情况下更改应用程序的整体外观,这是一个很好的接触。
缺点?有时它是不必要的,当你不需要时,你会产生开销。
答案 1 :(得分:1)
为了便于阅读和维护,我建议您传递对象。 如果您需要页面加载速度,则传递数组。