簡體   English   中英

使用變量后,我無法再次使用它

[英]After using a variable I can't use it again

出於某種原因,當我創建一個變量並使用它時,我無法再次使用它,我將它用於 foreach,然后在結束 foreach 后進行 var dump 並將其顯示為空變量

我如何使用變量

<div class="col-md-3 col-sm-4" style="margin-bottom: 25px;">
    <h2><?php echo System::translate("Job listings"); ?></h2>
    <aside>
        <div class="sidebar">
            <div class="related-people">
                <?php if(Session::get('company_using') == $this->company->company_id): ?>
                    <div class="pull-right showHideOptions" style="font-size:12px;">
                        <a href="<?php echo config::get('URL'); ?>company#create" style="color:#127cc3;"><span class="profileIcon"><i class="fa fa-cog"></i></span></a>                                 </div>
                <?php endif; ?>

                <ul>

                    <?php if(empty($this->jobs)): ?>
                        <li><?php echo System::translate("No jobs to show"); ?></li>
                    <?php endif; ?>

            <?php foreach(array_splice($this->jobs, 0,5) as $job): ?>
                <li>
                    <div class="text-box"> 
                        <strong class="name">
                            <a href="<?php echo config::get('URL'); ?>jobs/view/<?php echo System::escape($job->job_id); ?>">
                                <?php echo System::escape(ucwords($job->job_name)); ?>
                            </a>
                        </strong> 
                            <span><i class="fa fa-map-marker"></i>
                                <?php echo System::escape($job->job_country); ?>
                            </span> 
                            <span><i class="fa fa-map-marker"></i>
                                <?php if(strlen($job->job_description) > '85'): ?>
                                    <?php echo substr(System::escape($job->job_description),0,85); ?>...
                                <?php else: ?>
                                    <?php echo substr(System::escape($job->job_description),0,85); ?>
                                <?php endif; ?> 
                            </span> 
                    </div>
                </li>
            <?php endforeach; ?>
        <?php var_dump($this->jobs); if(!empty($this->jobs)): ?>
            <a class="btn btn-info col-sm-12" href="<?php echo Config::get('URL'); ?>directory/jobs/<?php echo System::escape($this->company->company_id); ?>/all" id="jobs"><?php echo System::translate("Jobs"); ?></a>
        <?php endif; ?>
        </div>
    </div>
</div>

當我使用 foreach 時,日期回顯得很好,但是在使用它和 var_dump 之后我得到:

數組(0){}

我如何啟動變量

//jobs
$jobs = CompanyModel::project_history($company->company_id);

$this->View->renderPage('company/profile', array('jobs' => $jobs))

我如何啟動renderPage

public function renderPage($filename, $data = null)
{
    if ($data) {
        foreach ($data as $key => $value) {
            $this->{$key} = $value;
        }
    }

    require Config::get('PATH_VIEW') . '_templates/header.php';

    require Config::get('PATH_VIEW') . $filename . '.php';
    require Config::get('PATH_VIEW') . '_templates/footer.php';
}

以及帶有數據的模型(當我使用它時有效,但使用后它變空了

public static function project_history($id = null)
{
    //get the user's employment history
    $database = DatabaseFactory::getFactory()->getConnection();

    //select by session or id
    if($id == null):

        //the sql we're performing.
        $sql = "SELECT * 
            FROM   jobs 
            WHERE  job_user = ? 
                   AND job_enabled = 1
                   AND job_company = ?";


        //run the query
        $job = $database->prepare($sql);
        $job->execute(array(Session::get('id'), Session::get('company_using')));
    else:

        //the sql we're performing.
        $sql = "SELECT * 
            FROM   jobs 
            WHERE job_company = ?
                AND job_enabled = 1";


        //run the query
        $job = $database->prepare($sql);
        $job->execute(array($id));

    endif;

    //what where the results?
    return $job->fetchAll();

}

所以只是為了澄清,我用模型初始化了我的變量,在我的 html 頁面上,我可以使用該變量一次,然后由於某種原因它清空,知道是什么導致了這種情況?

你寫:

foreach( array_splice( $this->jobs, 0,5 ) as $job )

array_splice()刪除數組的一部分並將其替換為其他內容(並返回刪除的部分)。

因此,通過此操作,您可以清空數組。

使用for循環:

for( $i = 0; $i < 5; $i++ )
{
    $job = $this->jobs[$i];
}

或者一個簡單的foreach (你的數組是空的,所以你處理所有的數組元素):

foreach( $this->jobs as $job )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM