返回后,类是否保留值

时间:2015-02-10 05:37:29

标签: php pdo

不是100%我的问题实际应该是什么,如果我的经验不足说Super Noob,请不要苛刻我,但我有这个部分功能的类功能,我似乎无法拿出Noob的答案在我回来之后说虚拟它已经消失了,永远不会再被使用。这里说的是功能和与之反应的代码,我的问题是可以保留值并在返回后使用吗?而且无人问津可以有人帮助我开始工作它检索广告并显示它们,但我不会尝试记录这些印象。请忽略我的拼写错误,只是回想起来并且它并不完美。功能:         function 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 -->

                    }

我希望我按要求做了,先谢谢你了......

1 个答案:

答案 0 :(得分:0)

return不会影响值,而是代码。当你返回时,该函数中将不再执行任何行。返回并不只是将结果发回,它会随身携带并随之返回。

您可以在返回之前更新展示次数(减慢页面响应时间),也可以编写页面内容,刷新输出,并在响应发送后记录展示,或者您可以保存信息并让系统负责在后台记录印象,例如作业队列或专用线程等。