我们的临时服务器正在生成语法错误,并且我想知道,如果我们的分期预服务器已经让我们的开发团队摆脱不正确的语法。静态公共类成员PHP临时服务器上
下面是导致 '语法错误' 的代码:
// GLOBALS.PHP
<?php
session_start();
class ItemsFromBronzeAge {
static public $ITEMNAMELABEL = "ItemName";
}
class Labels {
static public $USER_PROMPT_ITEMNAME = "Item name here....";
}
?>
我们包括上述globals.php进入第二个文件 - 名为index.php的 - 这样的:
// INSIDE OF INDEX.PHP
<?php
require_once 'globals.php'; // variables and statics used throughout
// the next line is line #12 in the 'Parse error' message below
$_SESSION[ItemsFromBronzeAge::$ITEMNAMELABEL] = Labels::$USER_PROMPT_ITEMNAME;
?>
而这里的分析错误,当我们我们1and1.com临时服务器上运行的index.php:
" Parse error: syntax error, unexpected ']',
expecting '(' in index.php on line 12"
只是为了推动这个家,我们CH在index.php来这个代码和1and1.com临时服务器anged线#12不再报告“解析错误”:
// WE CHANGED FROM THIS:
$_SESSION[ItemsFromBronzeAge::$ITEMNAMELABEL] = Labels::$USER_PROMPT_ITEMNAME;
// TO THIS AND THE 'PARSE ERROR' GOES AWAY -- THIS CODE WORKS ON THE STAGING SERVER:
$_SESSION["ItemName"] = "Item name here....";
没有办法我们的团队是通过我们的所有的源代码回去,放弃使用数组索引的常量并将字符串文字用作数组索引。
我的问题是 - 有我们的分期预开发服务器已经让我们摆脱不正确的语法上面,还是1and1.com有某种PHP的设置失衡了,还是......?
我的意思是使用公共静态类成员作为数组索引的 - 是家常便饭。
看不到任何语法错误,我的本地测试正常工作。你可能应该使用类常量而不是静态公共属性,例如'const ITEMNAMELABEL =“ItemName”;'。哪些版本的PHP正在使用? – Phil 2012-03-14 06:27:15
我认为这是因为“静态公共”应该是公共静态$ var =“Something”; – 2012-03-14 06:27:36
@菲尔,那是我们愿意做的100%改变,谢谢,1and1还没有回到我们身边,等待对开发工作根本不利。 Sheikh,我会在1and1.com上的暂存服务器上运行一个简短的测试用例,看看是否将从“静态公共”到“公共静态”建议的顺序颠倒过来 - 对于我们所知道的,我们的预先准备服务器只是让我们摆脱'静态公共$ var =“theText” - 我会回来后测试它 - 谢谢! – wantTheBest 2012-03-14 06:32:23