简介
我有某种值,我可能希望在每个页面加载时多次访问这些值。我可以采用两种不同的方法来访问它们,但我不确定哪一种“更好”。三个已实现的示例是我在此处描述的语言、URI 和显示文本的几个选项:
语言
现在它是这样配置的:lang()
是一个根据参数返回不同值的函数。
示例:lang("full")
打印当前语言“English”,而 lang()
打印当前语言的缩写“en”。还有更多选项,例如 lang("select")
、lang("selectact")
等,可以打印不同的内容。该代码太长且与案例无关,因此如果有人想要它,请询问它。
网址
$Url 数组还会根据请求返回不同的值。整个数组在页面的开头完全定义,用于获取当前页面的较短但准确的链接。
示例:echo $Url['full']
将打印“http://mypage.org/path/to/file.php?page=1”和 echo $Url ['file']
将打印“file.php”。它对于表单和许多其他事物中的 action=""
很有用。 $Url['folder']
、$Url['file']
等还有更多值。代码也是如此,如果需要,只需请求即可。
文本
[您可以跳过此部分]
还有另一个名为 $Text 的数组,它的定义方式与 $Url 相同。整个数组在开头定义,进行 mysql 调用并使用 while 循环定义当前页面的所有 $Text[$i]
。我不确定这是否比多次调用单个 mysql 单元更有效。
示例:echo $Text['54']
打印“这只是一个测试数组!”这可以通过像 text(54)
这样的函数完美地实现。
问题
通过这 3 个示例,您可以看到我使用不同的方法来执行几乎相同的功能(没有双关语),但我不确定哪一个应该成为我的代码的标准方法。我可以创建一个名为 url()
的函数和另一个名为 text()
的函数来输出我想要的内容。我认为在这些情况下使用函数更好,但我不确定为什么。因此,我非常感谢您的意见和建议。
我应该按照我描述的方式混合数组和函数还是应该只使用函数?
请将此作为您的答案:
- 源代码需要可供其他开发者可读并可重用
- 资源消耗(处理、时间和内存)。
- 代码越短越好。
- 您解释的原因越多越好。
谢谢
PS,现在我知道 $Url 和 $Uri 之间的区别了。
最佳答案
听起来您正在通过数组表示法实现不明确的函数。通常,这些是带有方法的类。 $url['full']
将是 $url->getFullPath()
。方法优于数组访问器,因为方法是有文档记录的,并且可以由 IDE 进行内省(introspection)。对象更可取,因为(在您的示例中)您可以延迟加载信息。现在,您的脚本正在编译 $Url
数组并计算出每个可能的键的值,以便可以在脚本中使用它。而 $request
对象只能根据请求进行解析 - 而不能实例化。
关于php - php 中定义的变量和数组与函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020524/