2014-10-03 85 views
1

这是用于OpenCart的PHP $_['entry_store'] = 'Stores:';中的一种变量

用于保存字符串的文本。

例如像这样... 它是一个全局变量,或者是什么呢?它始于$_['SomeName];

<?php 
$_['heading_feedback']= 'Feedback'; 
$_['heading_feedback_author']= 'Feedback'; 
$_['text_success'] = 'Success: You have modified feedback!'; 
$_['text_default'] = 'Default'; 
+0

我认为他们应该做这样说: 回报阵列(“heading_feedback” =>“反馈”,...等); – twicejr 2014-10-03 12:05:00

回答

4

不,它不是全局变量。这是一个常规变量,名称为_,它是一个数组。

$_ = array(); 
$_['array_key'] = 'value'; 

变量可以在被命名为几乎任何方式,唯一的限制是解析器和_不是字符阻止其(例如${0}是一个有效的变量声明)

变量名遵循与PHP中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母,数字或下划线。作为正则表达式,它会这样表示:'[a-zA-Z_ \ x7f- \ xff] *'

3

PHP没有防止变量$_成为数组。例如,

$_ = array('foo' => 'bar'); 
echo $_['foo']; // bar 

正常工作,一样$_foo或任何其他非保留名称。

1

让我们回到基础。来自the docs的片段。

一个有效的变量名以字母或下划线开始,后面跟上任意数量的字母,数字,或下划线

变量$_不是一个全局变量,它是一个普通的一个(带差的命名约定)。

+0

对穷人的命名约定+1,但这是OpenCart中的不同故事:-) – shadyyx 2014-10-06 10:31:41