从安全角度将字符串传递给函数的最佳方法是什么。我知道我可以使用全局变量,会话和函数字符串。像函数测试($ string)。什么是最好的方法?如果有人知道,请告诉我。
我正在尝试写这样的东西,例如:
$url = 'http://domain.com/';
function test() {
echo $url;
}
但如果可能不使用全局变量或函数字符串。如上所述。
也许我可以使用define和定义?
答案 0 :(得分:0)
我得到了它们,我使用了define。这是一个例子:
define('URL', 'http://domain.com/');
function test() {
echo URL;
}
但如果你有其他人知道其他方式,请回复。
答案 1 :(得分:0)
奇怪的是,我认为如果你从安全角度提出纯粹,我会说使用全局变量将数据传递给函数是最好的。
“哇!你是心理?”我听你问了吗?
这就像取消安全带的想法,而是将锋利的6英寸长钉固定在所有方向盘上。这会改变你的驾驶行为,不是吗?你一夜之间成为世界上最安全的司机!
所以,如果你强迫自己使用全局变量作为参数,你必须确保你的函数尽可能多地对这些数据进行安全性检查,因为你无法确定你的调用者已经处理过了。
当然,就像方向盘钉一样,这是一个完全荒谬的建议。 在现实世界中,您尽可能使用函数参数:更容易测试,更容易阅读,允许递归调用等...更多OO方法可能是使用获取原始数据的类在其构造函数中,并将经过验证的数据放入其成员变量中以供其他类方法使用。
让downvotes开始:)
答案 2 :(得分:0)
好的,这是我刚才想到的另一个答案,这对我来说已经足够了。
define('XML', 'file.xml');
然后在函数中做这样的事情
function test()
$xml = simplexml_load_file(XML);
}
这样至少我不需要在每个函数中更改“file.xml”名称: - )
答案 3 :(得分:0)
尝试使用$ GLOBALS数组
function test() {
echo $GLOBALS['url'];
}
或
function test() {
global $url;
echo $url;
}