类在返回后是否保留值


does a class retain value after it is returned

我的问题实际上应该是什么,如果我的经验不足,说Super Noob,请不要对我苛刻,但我有这个类函数部分有效,我似乎无法找到答案——我的Noob在你返回值后说dummy,它永远不会被重复使用。话虽如此,这里是函数和对其作出反应的代码,我的问题是,该值是否可以保留并在返回后使用?毫无疑问,有人能帮助我实现这一点吗?它检索广告并显示它们,但无论如何我都不会尝试记录印象。请忽略我的错别字刚刚恢复视力,它并不完美。功能:函数getRandomTextAds(){

    $sql = "SELECT
                ad_id,
                ad_client_id,
                ad_title,
                ad_url,
                ad_body,
                ad_link
            FROM
                text_ads
            WHERE
                status=1
                AND deleted=0
            ORDER BY
                rand()
            LIMIT 0, 5";
            $getBusyOn = $this->dbh->prepare($sql);
            $getBusyOn->execute();
            $OKresult = $getBusyOn->fetchAll(PDO::FETCH_ASSOC);
    $resultIsarray = array();
    return $OKresult;
    $initialize = $this->dbh->prepare("SELECT * FROM text_ads_activity WHERE ad_id = ?AND ad_client_id = ?");
$initialize->bindValue(1, $ad_id);
$initialize->bindValue(2, $ad_client_id);
$initialize->execute();
if($initialize->fetchAll(PDO::FETCH_ASSOC) == 0) {
$sql = "INSERT INTO text_ads_activity (
                    ad_id,
                    ad_view_cnt,
                    ad_activity_month,
                    ad_activity_year
                ) values (
                    ?,
                    1,
                    ?,
                    ?
                )";
            $isCommand = $this->dbh->prepare($sql);
            $isCommand->bindValue(1, $ad_id);
            $isCommand->bindValue(2, date("m"));
        $isCommand->bindValue(3, date("Y"));
            $isCommand->execute();
            } else {
$sql = "UPDATE text_ads_activity SET
                ad_view_cnt = ad_view_cnt+1,
                ad_activity_month = ?,
                ad_activity_year = ?
            WHERE
                ad_id = ?
                AND ad_client_id = ?
                AND ad_activity_month = ?
                AND ad_activity_year = ?";
        $doOrElse = $this->dbh->prepare($sql);
        $doOrElse->bindValue(1, date("m"));
        $doOrElse->bindValue(2, date("Y"));
        $doOrElse->bindValue(3, $ad_id);
        $doOrElse->bindValue(4, $ad_client_id);
        $doOrElse->bindValue(5, date("m"));
        $doOrElse->bindValue(6, date("Y"));
            $doOrElse->execute();
            }
        }

现在它与交互的代码部分

$resultIsarray = $siteSys->getRandomTextAds();
    $text_ad_count   = count($resultIsarray);

    foreach ($resultIsarray as $OKresult) {
    $ad_link = isset($OKresult['ad_link']) ? $OKresult['ad_link'] : '';
    $ad_title = isset($OKresult['ad_title']) ? $OKresult['ad_title'] : '';
    $ad_body = isset($OKresult['ad_body']) ? $OKresult['ad_body'] : '';
    $ad_url = isset($OKresult['ad_url']) ? $OKresult['ad_url'] : '';
    $ad_client_id = isset($OKresult['ad_client_id']) ? $OKresult['ad_client_id'] : '';
    $ad_id = isset($OKresult['ad_id']) ? $OKresult['ad_id'] : '';
                    <li align="center"><div id="text-ad-table">
                    <span class="heading"><a href="<?php echo $ad_link; ?>" target="_blank"><?php echo $ad_title; ?></a></span>
                    <span class="col1"><?php echo $ad_body; ?></span>
                    <span class="full-url"><?php echo $ad_url; ?></span>
                    </div></li><!-- eof #table -->
                    }

我希望我按要求做了,提前谢谢。。。。。

返回不会影响值,而是影响代码。当您返回时,将不再执行该函数中的任何行。返回不仅仅是将结果发回,它还手动携带结果并返回

您可以在返回之前更新印象(减缓页面响应时间),也可以在响应发送后写入页面内容、刷新输出并记录印象,也可以保存信息并让系统在后台记录印象,比如作业队列或专用线程或其他什么。