如何将类函数中的变量回显到其他文件

时间:2016-01-29 18:44:04

标签: php oop echo

我只是OOP PHP的初学者。我想要发生的是将函数内部的变量回显到其他文件。请看一下这段代码:

<{1>}文件中的

class.library.php

并在class db_connect { // Other functions and variables here function settings() { $sql="SELECT * FROM lms_admin_settings"; $result = $this->conn->query($sql); while($data = $result->fetch_assoc()) { $name = $data["name"]; } } } 档案中:

index.php

我想要发生的是简单地将名为include("class.library.php"); $data = new db_connect; $data->settings(); 的变量从名为$name的类的settings()函数回显到db_connect文件。

我试过这样的事情:

index.php

请告诉我正确的方法。

PS:请原谅我用来解释我的问题的条款。我只是个初学者。我们随时欢迎您纠正我。

3 个答案:

答案 0 :(得分:1)

问题是,您没有从settings()方法返回任何内容。从settings()方法返回整个结果集并循环遍历它,如下所示:

<强> class.library.php

class db_connect {

    // Other functions and variables here

    function settings() {
        $sql="SELECT * FROM lms_admin_settings";
        $result = $this->conn->query($sql);
        return $result;
    }
}

<强>的index.php

include("class.library.php");
$data = new db_connect;

// catch the result set
$result = $data->settings();

// loop through the result set
while($data = $result->fetch_assoc()) {
    // display
    echo $data['name'] . "<br />";
}

答案 1 :(得分:0)

您需要将$name设置为您班级的公共变量。 像这样:

class db_connect {
    // We declare a public var
    public $name = "";

    function settings() {
        $sql="SELECT * FROM lms_admin_settings";
        $result = $this->conn->query($sql);
        while($data = $result->fetch_assoc()) {
            $this->name = $data["name"];
        }
    }
}

然后您应该能够在index.php中访问您的var:

$data = new db_connect;
$data->settings();
echo $data->name;

您可以阅读此内容以了解有关变量和函数可见性的更多信息 Php doc

答案 2 :(得分:0)

<?php

class db_connect {

    // Other functions and variables here
    public $name;
    function settings() {

        $sql="SELECT * FROM lms_admin_settings";
        $result = $this->conn->query($sql);

        while($data = $result->fetch_assoc()) {
            $this->name = $data["name"];
        }
    }
}

//index.php
include("class.library.php");
$data = new db_connect;
$data->settings();
echo($data->name);

?>