相关疑难解决方法(0)

在PHP中停止使用`global`

我有一个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在我的例子中使用?有人说这是一个糟糕的语气,其他人说它不安全?

编辑1:

我在何处以及如何使用它的示例:

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)

编辑2:

按照Vilx的建议,将所有这些放在类中会很酷但在这种情况下,我如何将它与从提取配置 …

php

44
推荐指数
3
解决办法
2万
查看次数

Web表单生成器PHP类 - foreach上的空属性

我目前正在构建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)

php forms foreach class

1
推荐指数
1
解决办法
1172
查看次数

标签 统计

php ×2

class ×1

foreach ×1

forms ×1