gpt4 book ai didi

php - 如何防止嵌套函数调用?

转载 作者:搜寻专家 更新时间:2023-10-31 20:40:57 29 4
gpt4 key购买 nike

第一个问题,如果我做错了什么或者这是重复的,请原谅我,我找不到另一个类似的问题。

我正在编写一个非常基本的翻译函数 i18n($string1),当给定 $string1 时,它会查询一个索引。如果字符串与索引中的内容匹配,它返回翻译 $string2。如果索引中不存在 $string1,则会在索引中创建一个新条目,用户稍后可以将翻译后的 $string2 写入其中。

我想尝试解决的问题是草率的开发人员(我)可能会不小心调用 i18n(i18n($string1))。解决方法是内部调用在索引中找到 $string1,返回 $string2,然后再次将其传递给尝试查找 $string2 的函数 在索引中。这会失败,因为 $string2 是翻译,它会提示用户翻译翻译...这没有帮助。

我相信我想要的是,在调用嵌套函数的情况下,它返回字符串 $string1。因此,无论我在其内部调用 i18n 多少次,它总是翻译字符串 $string1

最好的方法是什么?我考虑过使用静态或全局 $isCalled 变量,或单例,但过去有人告诉我,这些解决方案几乎肯定是邪恶的,可能还有更好的方法。

提前致谢!

最佳答案

你被告知是正确的。

您可以通过分析 debug_backtrace() 来进行,但这确实非常耗时和耗费资源。这也是翻译功能不需要的开销。

如果开发人员使用已翻译的字符串调用翻译函数,则开发人员有责任解决该问题,而不是软件。

避免这种双重调用的一种方法是使用 PHP_CodeSniffer并定义禁止此类使用的编码标准。如果两个函数不在同一行中,则很难检查这些内容。

关于php - 如何防止嵌套函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984563/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com