PHP,如何在方法之间传递变量?

标签 php class methods

我正在尝试将变量从一种方法传递到另一种方法。

我正在从事件表中获取日期,以便在另一种方法中构建动态查询。

class Player extends Database {
    private $start_date;
    private $end_date;
    private $sumCase;

protected function getEvents() {
        $sql = "SELECT * FROM `events`";
        $stmt = $this->connect()->prepare($sql);
        $stmt->execute();
        $results = $stmt->fetchAll();

        $event_arr = array();
        foreach($results as $result) {
            $event_name = $result['event_name'];
            $this->start_date = $result['start_date'];
            $this->end_date = $result['end_date'];

            $this->sumCase[] = "SUM(CASE WHEN date BETWEEN $this->start_date AND $this->end_date THEN 1 ELSE 0 END) '$event_name'";
            $dateBetween[] = "date BETWEEN $this->start_date AND $this->end_date";
            array_push($event_arr, array(
                "name" => $result['event_name'],
                "start" => $result['start_date'],
                "end" => $result['end_date'],
            ));
        }
        return print_r($this->sumCase);
    }

这会毫无问题地返回我的 sumCase 数组,我现在尝试在另一种方法中访问此 sumCase 数组以构建查询:

protected function getPlayerEvents() {
        $sql = "SELECT count(chalID) as total, ";
        $sql .=' '.implode(', ', $this->sumCase); 
        $sql .="from (SELECT * FROM times where ("; //ignore this
        $sql .="date BETWEEN 159310659 AND 1593538594  OR date BETWEEN 1693538594 AND 1793538594"; //ignore this
        $sql .=") AND plaID = 1 group by chalID) A"; //ignore this

        $stmt = $this->connect()->prepare($sql);
        $stmt->execute();
        $results = $stmt->fetchAll();
        echo $this->sumCase; //returns null, how do I pass variables between methods?
    }

当我在此方法中回显我的 sumCase 数组时,它返回 null。如何从 getEvents 方法访问 sumCase 数组的值?

最佳答案

如果函数 getEvents 未被首先调用或调用的对象实例不同,则返回 null。

<?php

use directory_with_classes\Player;

$player = new Player();
$player->getEvents();
$player->getPlayerEvents();

?>

关于PHP,如何在方法之间传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64268162/

相关文章:

language-agnostic - 类型和类别有什么区别?

c# - 使用: “not all code paths return a value” 方法获取编译错误

php - 如何在不调用 session_start 的情况下获取 session

Java判断一个对象是哪个类

PHP - 是否有机会通过 exec() 运行 GUI 程序?

php - 与 RabbitMQ 的主题交换歧义

java - 在Java中如何传递应该更新哪个对象属性?

java - Java 中是否可以使用默认值定义方法参数?

php - 允许 php 软件在不超过 3 个计算中运行

php - 如何从 mysql/php 中的 json 对象中选择数据?