是否可以将php变量命名为$\u xxx?
我正在建立一个网站,我包括了一个名为“settings.php”的设置文件, 我认为用$u设置注册一个全局变量看起来很酷 作为一个站点设置数组(db\U名称、db\U通行证等) 因此:是否可以将php变量命名为$\u xxx?,php,variables,naming-conventions,Php,Variables,Naming Conventions,我正在建立一个网站,我包括了一个名为“settings.php”的设置文件, 我认为用$u设置注册一个全局变量看起来很酷 作为一个站点设置数组(db\U名称、db\U通行证等) 因此: 然后访问子页面上的这些设置。。。通过访问$\u设置 这个代码运行得很好, 但我很好奇,php程序员社区是否可以将您自己的变量命名为$\呢? 还是我的代码被认为是糟糕的设计 谢谢您可以这样做,但我不推荐这样做,因为变量也有这种模式/前缀,例如$\u SERVER,$\u SESSION,$\u GET,这可能会
然后访问子页面上的这些设置。。。通过访问$\u设置
这个代码运行得很好,
但我很好奇,php程序员社区是否可以将您自己的变量命名为$\呢?
还是我的代码被认为是糟糕的设计
谢谢您可以这样做,但我不推荐这样做,因为变量也有这种模式/前缀,例如
$\u SERVER
,$\u SESSION
,$\u GET
,这可能会有点混淆
但是,根据报告。您可以这样做:
有效变量名称以字母或下划线开始,后跟任意数量的字母、数字或下划线。作为正则表达式,它可以这样表示:“[a-zA-Z\ux7f-\xff][a-zA-Z0-9\ux7f-\xff]*”
最后,你做什么是个人偏好。我个人认为这是个坏主意。更好的解决方案是创建singleton类,在整个应用程序中提供配置 大概是这样的:
class MyConfigProvider
{
private $config = array();
private static $instance = null;
public static function getInstance()
{
if (self::$instance === null)
self::$instance = new self();
return self::$instance;
}
private function __construct(){}
public function getConfig()
{
return $this->config;
}
public function setConfig(array $config)
{
$this->config = $config;
}
}
您可以通过以下方式获得应用程序中所有位置的配置:
$config = MyConfigProvier::getInstance()->getConfig();
这不是最好的解决方案,但很容易实现,而且很有效这是您的代码,想做什么就做什么这只是个人喜好。当然,像
$\u SETTINGS
这样独特的全局设置是实用的,并且使其用途显而易见。(如果你仍然将应用程序配置的另一半拆分到数据库中,那就太傻了。)那么这个问题我们的答案是什么?@Rizier123我接受你的答案作为最终答案->命名一个var$\u设置是合法的,但可能会让代码读者对supoerglobals感到困惑。嗨,谢谢你的回答,请问,为什么它比index.php中作为设置文件包含的设置数组更好?为什么这很重要?我想更好地理解…使用这门课有什么好处?而且你说这不是最好的解决方案。。什么是最好的解决方案?嗨,这是一个比使用全局变量更干净的解决方案。在全局范围外使用全局变量是非常危险的,因为对这些全局变量的任何更改(例如,代码中的输入错误)都可能在程序的不同组件中产生意外行为。这样,您就可以将原始配置数据从应用程序的其余部分中分离出来。最好的解决方案是完全避免使用单例类,但要做到这一点,您必须重写应用程序的基本逻辑。尝试阅读一些关于依赖注入的内容。嗨,我有点困惑,最好的解决方案是避免使用单例类?我的代码总是乱七八糟的,但我每天都在努力改进。。。在我的新站点中,我仍然处于ui样式部分,只是转到了逻辑部分。。。那么,你建议我如何以最好的方式完成设置部分?
$config = MyConfigProvier::getInstance()->getConfig();