我想创建一个用户定义的配置文件,其中包含一些具有常量值的变量,现在我想在我的应用程序的许多页面中访问这些值。我可以使用函数使用这些变量。什么是最好的方法不使用类就可以做到这一点。
答案 0 :(得分:2)
您可以在某处定义此文件并将其包含或要求。
require_once("path/to/file/config.php");
此文件中的所有变量均可在requires / includes脚本中访问。
或者你可以使用define as:
define("TEST", "10"); //TEST holds constant 10
现在在所有大写中使用TEST将具有定义为的值。
另外,如果你希望它们在函数中可以访问,你有三个选项,在调用时将它们作为参数传递给函数,或者在函数中声明为全局函数。
//example 1
require_once("path/to/file/config.php");
function testFunction($var){
echo $var." inside my function"; //echos contents of $var
}
//now lets say a variable $test = 10; was defined in config.php
echo $test; //displays "10" as it was defined in the config file. all is good
testFunction($test); //displays "10 inside my function" because $test was passed to function
//example 2
require_once("path/to/file/config.php");
function testFunction2(){
global $test;
echo $test; //displays "10" as defined in config.php
}
//example 3
define("TEST", "10");
echo TEST; // outputs "10"
//could have these constants defined in your config file as described and used above also!
答案 1 :(得分:1)
如果没有类,可以使用define()
创建基于用户的常量,以便在整个应用程序中使用。
修改强> 常量的命名约定都是大写字符。
示例:
define(DATE, date());
您可以通过调用:
在脚本中调用它$date = DATE;
http://php.net/manual/en/function.define.php
或者,您可以将详细信息保存在$GLOBALS
数组中。请记住,这不是完全安全的,因此请使用md5()
存储密码或敏感数据。
答案 2 :(得分:1)
当你使用常量时,define()
是有意义的,但你可以使用ini files作为替代。
答案 3 :(得分:0)
有几种方法可以做到这一点
答案 4 :(得分:0)
如果我有一个像 config.ini 这样的简单配置文件(可以是 htttp://example.com/config.ini 或 /etc/myapp/config.ini )
user=cacom
version = 2021608
status= true
这是我的功能:
function readFileConfig($UrlOrFilePath){
$lines = file($UrlOrFilePath);
$config = array();
foreach ($lines as $l) {
preg_match("/^(?P<key>.*)=(\s+)?(?P<value>.*)/", $l, $matches);
if (isset($matches['key'])) {
$config[trim($matches['key'])] = trim($matches['value']);
}
}
return $config;
}