如何使用php类在类函数中获取参数

时间:2018-06-12 01:59:15

标签: php class

在我的项目中,我在php中定义了一个Datasource类。

我想用类调用函数,所以我在Datasource类中定义了静态getRedis函数。

这是Datasource.php代码:

<?php

 namespace common;

 class Datasource {

 public $config_name;  

 public $server_region;  


public function __construct() {}

public static function getRedis($config_name = NULL, $server_region = 'default') {
    $this->config_name=$config_name;
    $this->server_region=$server_region
    return $this->config_name;
}
}

现在我想调用getRedis函数并在我的html页面中显示instance1;

这是html代码:

<?php 
include "o1ws1v/class/common/Datasource.php";

$redis_obj = common\Datasource::getRedis('instance1');
echo $redis_obj;
?>

但它的话失败了。我不能得到$ redis_obj。它没有显示任何内容。

谁能帮帮我?

2 个答案:

答案 0 :(得分:1)

问题是你在静态方法中使用$ this这个上下文。如果你将类变量设为静态,它将起作用。

更多信息Static keyword

您的代码:

<?php

 namespace common;

 class Datasource {

    public static $config_name;  

    public static $server_region;  

    public static function getRedis($config_name = NULL, $server_region = 'default') {
        self::$config_name=$config_name;
        return self::$config_name;
    }
}

答案 1 :(得分:0)

如果您只是尝试从类中调用函数,则不必是静态的。让你在公共类中运行,它不需要在构造函数中。

这是你班上的。

public function getRedis($config_name = NULL, $server_region = 'default') {
    $this->config_name=$config_name;
    $this->server_region=$server_region;
    return $this->config_name;
}

在您要调用的文件中。

$variable = new Datasource; 
$variable->getRedis(); //This will call your function