Php 将字符串传递给函数的最佳方法?
从安全角度来看,将字符串传递给函数的最佳方式是什么。我知道我可以使用全局、会话和函数字符串。比如函数测试($string)。最好的方法是什么?如果有人知道,请告诉我 我试着写一些像这样的东西,例如:Php 将字符串传递给函数的最佳方法?,php,string,function,Php,String,Function,从安全角度来看,将字符串传递给函数的最佳方式是什么。我知道我可以使用全局、会话和函数字符串。比如函数测试($string)。最好的方法是什么?如果有人知道,请告诉我 我试着写一些像这样的东西,例如: $url = 'http://domain.com/'; function test() { echo $url; } 但如果可能的话,不要使用全局变量或函数字符串。如上所述 也许我可以用define和defined?我知道了,伙计们,我用define。下面是一个例子: define('UR
$url = 'http://domain.com/';
function test() {
echo $url;
}
但如果可能的话,不要使用全局变量或函数字符串。如上所述
也许我可以用define和defined?我知道了,伙计们,我用define。下面是一个例子:
define('URL', 'http://domain.com/');
function test() {
echo URL;
}
但如果你知道其他方法,请回答。奇怪的是,如果你纯粹是从安全角度出发,我认为使用全局变量将数据传递给函数是最好的 “哇!你疯了吗?”我听见你问 这就像是取消安全带的想法,而是在所有方向盘上安装一个6英寸的尖头。那会改变你的驾驶行为,不是吗?你一夜之间就成了世界上最安全的司机 因此,如果您强迫自己使用globals作为参数,您将确保您的函数对该数据进行尽可能多的安全检查,因为您无法确定您的调用者是否处理了该数据 当然,就像方向盘钉一样,这是一个完全荒谬的建议在现实世界中,尽可能使用函数参数:易于测试、易于阅读、允许递归调用等。。。一种更面向对象的方法可能是使用一个类,该类在其构造函数中获取原始数据,并将经过验证的数据放入其成员变量中,以供其他类方法使用
让反对票开始吧:)好的,我刚刚想出了另一个答案,对我来说已经足够好了
define('XML', 'file.xml');
然后在函数中做这样的事情
function test()
$xml = simplexml_load_file(XML);
}
这样,如果我需要在每个函数中更改“file.xml”名称,至少我不需要这样做:-)尝试使用$GLOBALS数组
功能测试(){
echo$GLOBALS['url'];
}
或
功能测试(){
全球$url;
echo$url;
}
我不明白你的意思。绳子是从哪里来的?函数测试($url){echo$url;}
?@codaddict,谢谢你编辑我的帖子,我是瞎子,没有看到那个代码按钮。@Pekka,我找到了,伙计。我现在用的是define,就是这样定义('XML',simple_XML_load('file.XML');不起作用lol这很好。向函数传递字符串的正常方法是使用参数。你到底想做什么?我认为globals更不安全:)使用define足够安全吗?我只是开玩笑,这个问题有点傻。不管你使用什么技术,你仍然必须检查数据是否正常。@Paul Dixon,我不同意:-)是的,你需要像我一样检查数据。但是有更好的方法,但是你从安全的角度提出你的问题,并且没有什么可以根据这些理由来区分不同的技术。正如您所建议的,使用常量并不能真正提供参数传递机制,因为它是不变的(或者应该是不变的!)为什么您有多个函数都在读取同一个文件?一个函数就足够了,如果您需要在多个位置使用xml,那么就调用该函数并使用结果——根本不需要将文件名保持在常量中。
function test() {
echo $GLOBALS['url'];
}
function test() {
global $url;
echo $url;
}