PHP:访问一个变量';在一个函数中声明,在另一个函数中声明
假设我有以下几点:PHP:访问一个变量';在一个函数中声明,在另一个函数中声明,php,Php,假设我有以下几点: class Submit extends \RightNow\Models\Base { function __construct() { parent::__construct(); } function inner () { return $i++; } function outer(){ $i = 0; $this->inner(); e
class Submit extends \RightNow\Models\Base
{
function __construct()
{
parent::__construct();
}
function inner () {
return $i++;
}
function outer(){
$i = 0;
$this->inner();
echo $i;
}
}
$submit = new Submit();
$submit->outer();
internal()
如何访问在outer()
中声明的变量$i?我尝试过使用global
,但没有成功
我知道在我最基本的例子中,我可以将变量作为参数传入,但这只是我问题的一个例子
我正在使用CodeIgniter,你可以。例如:
UPD
如果要传递多个变量:
正如您所提到的,您正在使用Codeigniter,您可以通过以下代码实现它。在任何类中,都可以在类中的任何成员函数中使用类成员变量
class Submit extends \RightNow\Models\Base
{
public $i = 0;
function __construct()
{
parent::__construct();
}
function inner () {
return $this->i++;
}
function outer(){
$this->i = 0;
inner();
echo $this->i;
}
outer();
}
正如您所提到的,您正在使用Codeigniter,您可以通过以下代码实现它。在任何类中,都可以在类中的任何成员函数中使用类成员变量
class Submit extends \RightNow\Models\Base
{
public $i = 0;
function __construct()
{
parent::__construct();
}
function inner () {
return $this->i++;
}
function outer(){
$this->i = 0;
inner();
echo $this->i;
}
outer();
}
如果您的所有方法都在一个类中,您可以使用下面的方法,即变量是类中的类引用集,因此所有类方法都自动可用 类中的变量称为属性 请参见上文,所有内容都引用类中设置的类属性
$i
class Submit extends \RightNow\Models\Base
{
public $i = 0;
function __construct()
{
parent::__construct();
}
function inner () {
return $this->i++;
}
function outer(){
$this->i = 0;
inner();
echo $this->i;
}
outer();
}
或者,如果您在来自的多个变量上使用相同的过程,您可以将它们组合成一个数组
,并将该数组作为单个参数传递
根据值是来自类内部还是外部,您的代码看起来会略有不同
class Submit extends \RightNow\Models\Base
{
public $i = 0;
function __construct()
{
parent::__construct();
}
function inner () {
return $this->i++;
}
function outer(){
$this->i = 0;
inner();
echo $this->i;
}
outer();
}
参考资料:
如果所有方法都在一个类中,则可以使用以下方法,即变量是类中的类引用集,因此所有类方法都自动可用 类中的变量称为属性 请参见上文,所有内容都引用类中设置的类属性
$i
class Submit extends \RightNow\Models\Base
{
public $i = 0;
function __construct()
{
parent::__construct();
}
function inner () {
return $this->i++;
}
function outer(){
$this->i = 0;
inner();
echo $this->i;
}
outer();
}
或者,如果您在来自的多个变量上使用相同的过程,您可以将它们组合成一个数组
,并将该数组作为单个参数传递
根据值是来自类内部还是外部,您的代码看起来会略有不同
class Submit extends \RightNow\Models\Base
{
public $i = 0;
function __construct()
{
parent::__construct();
}
function inner () {
return $this->i++;
}
function outer(){
$this->i = 0;
inner();
echo $this->i;
}
outer();
}
参考资料:
所以如果我有一打参数,我就要做十几次?这是唯一的方法?所以如果我有一打参数,我必须做十几次?那是唯一的办法?