如何从另一个类读取变量


How to read a variable from another class

我有下面的情况,我不知道怎么做:

class A {
public fuction a1()
{
     $time = date("Y-m-d H:i:s");
}
}
class B extends A {
public function b1()
{
    // how to echo the variable "$time" in class B?
}
}

您可以PHP的父关键字,并返回a1()函数的值。

所以你的代码看起来就像这样,
<?php
class A
{
    public static function a1()
    {
        $time = date("Y-m-d H:i:s");
        return $time;
    }
}
class B extends A
{
    public function b1()
    {
        echo parent::a1();
    }
}

你也可以试试这个

<?php
class A
{
    public static function a1()
    {
       echo  $time = date("Y-m-d H:i:s");
    }
}
class B extends A
{
    public function b1()
    {
       $this->a1();
    }
}
$object = new B;
$object->b1();

有两种方法:

First:

<?php
/**
 * Class A
 */
class A
{
    /**
     * Class Property (Class Var)
     * @var public
     */
    public $time;
    /**
     * a1
     * Set date time in class property $time
     * @return [type] [description]
     */
    public function a1()
    {
        $this->time = date("Y-m-d H:i:s");
    }
}
/**
 * Class B extends Class A
 */
class B extends A
{
    /**
     * b1
     * Call Parent Class A method first to set date time
     * then echo time output
     * @return string Parent Class T$time value
     */
    public function b1()
    {
        // first init the time value from parent class method
        $this->a1();
        // now show or get the parent class property
        return $this->time;
    }
}
/**
 * Class Object B
 * @var B
 */
$B = new B();
// call B Class method b1 to echo time
echo $B->b1();

Second:

<?php
/**
 * Class A
 */
class A
{
    /**
     * Class Property (Class Var)
     * @var public
     */
    public $time;
    /**
     * a1
     * Set date time in class property $time
     * @return [type] [description]
     */
    public function a1()
    {
        // set date time
        $this->time = date("Y-m-d H:i:s");
        // return set class property value
        return $this->time;
    }
}
/**
 * Class B extends Class A
 */
class B extends A
{
    /**
     * b1
     * Call Parent Class A method first to set date time
     * then echo time output
     * @return string Parent Class T$time value
     */
    public function b1()
    {
        // first init the time value from parent class method
        return $this->a1();
    }
}
/**
 * Class Object B
 * @var B
 */
$B = new B();
// call B Class method b1 to echo time
echo $B->b1();

因此,您可以在第一个类中声明变量,而不需要函数。

class A()
{
     protected static $time = date("Y-m-d H:i:s");
}
class B extends A 
{
    public function b1()
    {
        echo parent::$time;
    }
}

您可以在代码中的任何地方使用时间变量,而无需实例化A类。另外,"$time"变量不一定是静态的