错误启动使用PHP类另一个数组的数组时

我尝试初始化使用PHP类另一个数组的数组。 下面是代码:

<?php class test { var $nodeDomain = array ("gd88" =>"10.10.104.88", "gd02" =>"10.10.104.2"); var $node = array ("x86-mysql" =>$nodeDomain['gd88'], "x86-hbase" =>$nodeDomain['gd02']); function show () { print_r($node); } } ?>

我得到这个错误:解析错误​​:语法错误,意想不到的T_VARIABLE在/root/workspace/php/array.php第6行

但是,当我不使用类运行的代码,它工作正常。 我的意思是我运行下面的代码:

var $nodeDomain = array ("gd88" =>"10.10.104.88", "gd02" =>"10.10.104.2"); var $node = array ("x86-mysql" =>$nodeDomain['gd88'], "x86-hbase" =>$nodeDomain['gd02']);

我不是PHP类和PHP脚本的差异相当明显。 任何人都可以解释一下吗?

谢谢。

--------------解决方案-------------

声明类的成员时,不能使用另一个变量。 尝试初始化它们的构造。

<?php class test
{
var $nodeDomain;
var $node;

public function __construct() {
$this->nodeDomain = array("gd88" =>"10.10.104.88", "gd02" =>"10.10.104.2");
$this->node = array("x86-mysql" =>$this->nodeDomain['gd88'],
"x86-hbase" =>$this->nodeDomain['gd02']);
}
function show ()
{
print_r($node);
}
}
?>

尝试把那些阵列initialazing到测试类的构造函数

你就不能引用字段声明的变量。 这个变量应该从哪儿来的呢? 有没有局部变量和没有办法来定位一个全球性的声明。 (当然超全局变量可以工作,但是这显然没有实现;-))相反,你可以做这样的事情:

<?php class test
{
var $nodeDomain = array
("gd88" =>"10.10.104.88", "gd02" =>"10.10.104.2");
var $node;

function __construct()
{
$this->node = array
("x86-mysql" =>$nodeDomain['gd88'],
"x86-hbase" =>$nodeDomain['gd02']);
}
function show ()
{
print_r($node);
}
}
?>

要注意的是$ nodeDomain必须在构造函数的范围莫名其妙。 无论它是一个全局变量,所以你需要一个global $nodeDomain语句中的赋值之前,也可以通过$ nodeDomain作为构造函数的参数。

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP,数组,类
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.466 (s). 10 q(s)