如果语句为FALSE,则显示消息-Foreach

时间:2013-07-31 作者:MightyGas

我从http://tutorialzine.com/2010/02/php-mysql-download-counter/ 并将其成功集成到我的wordpress中。它可以工作,但即使值为真,也会显示“无下载文件”消息。代码如下:

<?php
    $value = get_post_custom_values("kpm_UploadFile");
    $url = ($value[0]);
    $tokens = explode(\'/\', $url);
    $dlvalue = $tokens[sizeof($tokens)-1];

    if (current_user_can(\'read\')) {

        foreach($files_array as $key => $val) {
        if ($dlvalue == $val){
            echo \'<a href="http://drrknowledge.net/download.php?file=\'.urlencode($val).\'"><strong>Download File</strong><br />\'.$val.\' has been downloaded <strong>\'.(int)$file_downloads[$val].\'</strong> times</a>\';
            }else {
                echo \'No Download File\';
            }
        }
    } else { echo \'Register to download\';}
?>
我想在这里实现的是显示下载文件。如果“kpm\\U UploadFile”自定义字段中没有文件,或者如果没有文件,则会显示一条else语句,说明“无下载文件”。

我可以删除

echo“无下载文件”;

但如果没有价值,我想显示一条消息。

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

好吧,这是一个很大的猜测,因为我看不到您的其余代码,但像这样的东西应该可以工作,我希望。。。

<?php
    $value = get_post_custom_values("kpm_UploadFile");
    $url = ($value[0]);
    $tokens = explode(\'/\', $url);
    $dlvalue = $tokens[sizeof($tokens)-1];

    if (current_user_can(\'read\')) {
        $found = 0;
        foreach ($files_array as $key => $val) {
            if ($dlvalue == $val) {
                $found = 1;
                echo \'<a href="http://drrknowledge.net/download.php?file=\'.urlencode($val).\'"><strong>Download File</strong><br />\'.$val.\' has been downloaded <strong>\'.(int)$file_downloads[$val].\'</strong> times</a>\';
            }
        }
        if ( !$found ) {
            echo \'No Download File\';
        }
    } else { echo \'Register to download\';}
?>

结束