我有一个数组。但我不知道如何在课堂上访问它。
下面是我的示例代码。
<?php
$value[0]=11;
$value[1]=22;
$value[2]=33;
class test {
var $code1,$code2,$code3;
function __construct() {
$this->$code1 = $value[0];
$this->$code2 = $value[1];
$this->$code3 = $value[2];
echo $code1;
}
}
答案 0 :(得分:1)
您可以执行以下任何一项操作:
将值作为参数(推荐选项)
传递给构造函数<?php
$value[0]=11;
$value[1]=22;
$value[2]=33;
class test {
var $code1,$code2,$code3;
function __construct($value) {
$this->code1 = $value[0];
$this->code2 = $value[1];
$this->code3 = $value[2];
echo $this->code1;
}
}
$obj = new test($value);
?>
使用$GLOBALS
数组(docs)
<?php
$value[0]=11;
$value[1]=22;
$value[2]=33;
class test {
var $code1,$code2,$code3;
function __construct() {
$this->code1 = $GLOBALS['value'][0];
$this->code2 = $GLOBALS['value'][1];
$this->code3 = $GLOBALS['value'][2];
echo $this->code1;
}
}
$obj = new test;
?>
使用global
关键字(docs)
<?php
$value[0]=11;
$value[1]=22;
$value[2]=33;
class test {
var $code1,$code2,$code3;
function __construct() {
global $value;
$this->code1 = $value[0];
$this->code2 = $value[1];
$this->code3 = $value[2];
echo $this->code1;
}
}
$obj = new test;
?>
备注强>
我已经纠正了上面的几个错误。
您应该使用$this->code1
代替$this->$code1
。第二个版本在语法上是有效的,但意味着其他东西。请考虑以下示例:
class myClass {
public $myVar = "My Var";
public $anotherVar = "Another Var";
function __construct () {
// creates a local variable to the constructor, called $myVar
// does NOT overwrite the value defined above for the object property
$myVar = "anotherVar";
echo $myVar; // echoes 'anotherVar'
echo $this->myVar; // echoes 'My Var'
echo $this->$myVar; // echoes 'Another Var'
}
}
此外,上面的示例说明了您应该使用echo $this->code1;
而不仅仅是echo $code1;
答案 1 :(得分:0)
class test {
private $code1,$code2,$code3;
function __construct($value) {
$this->code1 = $value[0];
$this->code2 = $value[1];
$this->code3 = $value[2];
echo $this->code1;
}
}
用法:
$test = new Test($value);
答案 2 :(得分:0)
这样的事情:
class test
{
var $code1,$code2,$code3;
function __construct($input)
{
$this->code1 = $input[0];
$this->code2 = $input[1];
$this->code3 = $input[2];
}
}
[...]
$value[0]=11;
$value[1]=22;
$value[2]=33;
$test = new test($value);
答案 3 :(得分:0)
除非使用global
关键字,否则全局变量在函数内部不可见。 e.g:
// Global variable
$x = 5;
// Won't affect the global
function foo()
{
$x = 3;
}
// Will affect the global
function bar()
{
global $x;
$x = 2;
}
注意强>
但是,一般来说,使用像这样的全局变量并不是一个好主意。它引入了依赖关系,使您的代码更难以测试和调试。我建议你把变量作为参数传递给你的构造函数。