我有一个config.php包含在每个页面.在配置中我创建一个类似于下列的数组:
$config = array();
$config['site_name'] = 'Site Name';
$config['base_path'] = '/home/docs/public_html/';
$config['libraries_path'] = $config['base_path'] . '/libraries';
//etc...
Run Code Online (Sandbox Code Playgroud)
然后我有function.php,几乎每个页面都包括,我必须使用它global $config来访问它 - 这就是我想要摆脱的!
如何$config在不使用代码的情况下访问代码的其他部分global?
任何人都可以解释一下,为什么我不应该global在我的例子中使用?有人说这是一个糟糕的语气,其他人说它不安全?
我在何处以及如何使用它的示例:
function conversion($Exec, $Param = array(), $Log = '') {
global $config;
$cmd = $config['phppath'] . ' ' . $config['base_path'] . '/' . $Exec;
foreach ($Param as $s)
{
$cmd .= ' ' . $s;
}
}
Run Code Online (Sandbox Code Playgroud)
按照Vilx的建议,将所有这些放在类中会很酷但在这种情况下,我如何将它与从提取配置 …
我目前正在构建PHP类,它可以生成Web表单以实现灵活性和本地化问题.我难以为下拉输入分配键和值; 出于某种原因,foreach似乎没有得到数组变量($ country_list).这是我的代码,我遇到了困难.
require_once('_include/country_list.php');
//drop down form class
class DropDown
{
function __construct ($form, $field_label, $field_name, $field_desc, $dropdown_data, $locale){
$this->form = $form;
$this->field_label = $field_label;
$this->field_name = $field_name;
$this->filed_desc = $filed_desc;
$this->dropdown_data = $dropdown_data;
$this->locale = $locale;
}
function getNotRequiredData(){
global $notReqArry; //http://stackoverflow.com/questions/1415577/accessing-variables-and-methods-outside-of-class-definitions
return $notReqArry[$this->locale];
}
function getValue(){
return $_POST[$this->field_name];
}
function dropdown(){
$selecedVal = $this->getValue();
$select_start = "<select name=\"$this->field_name\"><option value=\"\">$this->filed_desc</option>";
foreach ($this->dropdown_data as $key=>$value){
$selected = ($key == $selecedVal ? 'selected' : '');
$options = sprintf('<option value="%s" %s >%s</option>',$key,$selected,$value); …Run Code Online (Sandbox Code Playgroud)