猿问

我们可以在 php 类的单个方法中使用两个 mysql 查询吗?

我想知道是否可以在一个 php 类对象方法中编写两个不同的 mysql 查询并在另一个类方法中使用这些结果。这是我正在尝试做的(我只将代码的相关部分放在这里),但我认为它不起作用:


<?php


    public function sql()

    {

        $sql = "SELECT * FROM customers";


        // Another sql

        $sql_sales = "SELECT SUM(sales) as sales FROM customers";

        // Execute this sql and result is stored in a variable

        $this->sales = $row['sales'];


        return $sql;

    }


    public function customers_list()

    {

        $sql = $this->sql();


        $customers = '

        <div id="customers">

            <div id="customers_num"><span>'.$this->sales.'</span> Sales</div>

        </div>';

        return $customers;

    }


?>

我们可以$this->sales在另一个方法中使用变量的值吗?


如果不是,那么获得它的价值的正确方法是什么?


慕尼黑5688855
浏览 132回答 2
2回答

大话西游666

如果您的代码在类中并且您使用的是实例化对象:从PHP 基础开始当从对象上下文中调用方法时,伪变量 $this 可用。$this 是对调用对象的引用因此,您可以在其方法中访问任何对象属性。在您的特定情况下,$this->sales = $row['sales'];在其sales&nbsp;属性中存储一个值,该值可以在对象范围内的任何其他地方使用。

catspeake

我们无法像您的方法那样获得变量值。您的主查询$sql正在返回结果,但您的第二个查询的$sql_sales值没有返回。这就是为什么它在您的方法中是 undefined 属性customers_list()。解决方案是创建一个单独的方法来获取$this->sales价值。然后你可以在你的中调用这个方法customers_list()并访问它的值。
随时随地看视频慕课网APP
我要回答