返回从类PHP OOP值(return values from class php oop)

2019-07-31 06:41发布

代码如下:

Class userinfo {
    function fetchdatabyemail($email) {
        $result=mysql_query(" SELECT * FROM users WHERE email='$email'"); 
        while($row = mysql_fetch_array($result)) {
            $name = $row['name'];
            $num = $row['num'];
            $city = $row['city'];
        }
        $numrows= mysql_num_rows($result);    
    }
}

现在让我这样做的信息:

$info = new userinfo();
$info->fetchdatabyemail('email@email.com');  
echo $info->city; 

并且它不返回的信息。 我觉得我做错了任何想法,请

Answer 1:

做到这一点

public $numrows;
public function fetchDataByEmail($email) {
        $result=mysql_query(" SELECT * FROM users WHERE email='$email'"); 
        while($row = mysql_fetch_assoc($result)) {
        $fetch[] = $row;
        }
        $this->numrows = mysql_num_rows($result);  
        return $fetch;  
}

然后

$info = new userinfo();
$detail = $info->fetchDataByEmail('email@email.com');  
print_r($detail); // return all result array
$info->numrows; // will return number of rows.


Answer 2:

您的变量本地工作。 你需要将其分配的一流水平。 您的代码应该是:

Class userinfo {

public $name,$city,$num,$numrows;

function fetchdatabyemail($email) {
$result=mysql_query(" SELECT * FROM users WHERE email='$email'"); 
while($row = mysql_fetch_array($result)) {
$this->name = $row['name'];
$this->num = $row['num'];
$this->city = $row['city'];
}
$this->numrows= mysql_num_rows($result);

}

然后用这个获取到的信息:

$info = new userinfo();
$info->fetchdatabyemail('email@email.com');  
echo $info->city; 

}



Answer 3:

你应该有这方面的私有变量和getter / setter方法(这是正确的方法,请参见下面的代码)。 你也可以从类的实例声明$城市作为一个公共变量和直接访问它。

class userinfo
{
    private $city = '';

    public function getCity()
    {
        return $this->city;
    }

    public function fetchDataByEmail($email)
    {
        // Your code here
        $this->city = $row['city'];
    }
}

$info = new userinfo();
$info->fetchDataByEmail('someone@example.com');
echo 'City: '.$this->getCity();


Answer 4:

我觉得你的问题是你的变量的作用域/ visbility认为你需要声明它们的功能范围之外:

http://www.php.net/manual/en/language.oop5.visibility.php

class userinfo {
    public $name;
    public $num;
    public $city;
    public $numrows;
    function fetchdatabyemail($email) {
        $result=mysql_query(" SELECT * FROM users WHERE email='$email'"); 
        while($row = mysql_fetch_array($result)) {
            this->$name = $row['name'];
            this->$num = $row['num'];
            this->$city = $row['city'];
        }
        this->$numrows= mysql_num_rows($result);
    }
}


Answer 5:

您需要首先声明类变量。

class Userinfo {

    $city;

    // then declare the function

}

你在做它的方式,$全市范围仅为中的函数,而不是存储为场



Answer 6:

while循环每次迭代更新信息。 所以,美国可以在同时像呼应

function fetchdatabyemail($email) {
    $result=mysql_query(" SELECT * FROM users WHERE email='$email'"); 
    while($row = mysql_fetch_array($result)) {
       echo $row['city'];
    }

或者可以在其被在类和比全局声明的数组存储值echo阵列。

在你的代码中有$city申报与本地函数范围是不是从类访问$info->city



文章来源: return values from class php oop
标签: php oop