如何在php中的同一个类中将变量从一个函数提取到另一个函数中

时间:2015-06-19 14:06:13

标签: php oop abstract-class

我想将一个函数的变量值用于同一个类的另一个函数。我正在使用abstract class使用,我间接地将变量声明为global。我不能在类中将变量声明为global。我的演示代码如下:

<?php 
abstract class abc
{
   protected    $te;
}

class test extends abc
{
public  function team()
{
    $te = 5;
    $this->te += 100;
}

public  function tee()
{
    $tee = 51;
    return $this->te;
}

}
$obj = new test();
echo $obj->tee();


//echo test::tee();
?>

我可以回答105作为答案吗?

我的主要动机是我想学习如何使用一个函数将变量值转换为另一个函数而不在同一类中声明全局请告诉我这是否可行或我需要删除我的问题?

2 个答案:

答案 0 :(得分:4)

<?php 
abstract class abc
{
   protected    $te;
}

class test extends abc
{
    public function __construct() {
        $this->te = 5;
    }

    public  function team()
    {
        $this->te += 100;
    }

    public  function tee()
    {
        return $this->te;
    }
}

$obj = new test();
$obj->team();
echo $obj->tee();

- 编辑:至少使用抽象“功能”:

<?php 
abstract class abc
{
    protected    $te;

    abstract public function team();
    public  function tee()
    {
        return $this->te;
    }
}

class test extends abc
{
    public function __construct() {
        $this->te = 5;
    }

    public function team()
    {
        $this->te += 100;
    }
}

$obj = new test();
$obj->team();
echo $obj->tee();

- edi2:既然您已经询问是否必须调用团队(然后删除该评论):

<?php 
abstract class abc
{
    protected    $te;

    abstract public function team();
    public  function tee()
    {
        $this->team();
        return $this->te;
    }
}

class test extends abc
{
    public function __construct() {
        $this->te = 5;
    }

    public function team()
    {
        $this->te += 100;
    }
}

$obj = new test();
echo $obj->tee();

所以,是的,它必须在某处调用。但是,根据你想要实现的目标,有很多方法可以实现。

答案 1 :(得分:0)

该类的每个属性都可以由同一个类的每个方法访问。因此,您可以创建使用相同属性的方法。而且您不需要创建父抽象类。

class test
{
     protected $te = 5;

     public  function team()
     {         
          $this->te += 100;
     }

     public  function tee()
     {
         return $this->te;
     }

}

$obj = new test();
$obj->team();
echo $obj->tee();