簡體   English   中英

這個PHP有什么問題?

[英]What's Wrong With This PHP?

我收到此語法錯誤: 解析錯誤:語法錯誤,意外的T_STRING,預期為','或';' 此頁的第 18行

我認為這可能是“首次發布”行。 有什么建議么?

謝謝 - 塔拉

<?php 
    $days = round((date('U') - get_the_time('U')) / (60*60*24));
    if ($days==0) {
        echo "Published today |"; 
    }
    elseif ($days==1) {
        echo "Published yesterday |"; 
    }
    else {
        echo "First published " the_time('F - j - Y') " |";
    } 
?>
&nbsp;Last updated at <?php the_time('g:i a'); ?> on <?php the_time('l, F jS, Y') ?> by <?php the_author(); ?> 

您的問題是這樣的:

echo "First published " the_time('F - j - Y') " |";

提示連接的其他答案都是錯誤的。 WordPress中的the_time()將回顯,因此您需要將其拆分為多個調用:

echo "First published ";
the_time('F - j - Y');
echo " |";

或者,使用get_the_time()進行串聯:

echo "First published " . get_the_time('F - j - Y') . " |";

代替

echo "First published " the_time('F - j - Y') " |";

嘗試

echo "First published " . get_the_time('F - j - Y') . " |";

通過使用get_the_time()而不是the_time() ,您可以將其與字符串的其余部分串聯起來,而不必將其分成多行。 在諸如the_time()之類的Wordpress函數回顯其結果的地方,通常會有一個“ get”版本返回該值而不回顯它。

如果這確實是來自Wordpress的代碼,並且the_time()本身回顯,是的,那么您需要將回顯放在單獨的行上:

echo "First string";
the_time();
echo "second string";

邊注:

當解析器抱怨您缺少分號(;)時,我發現有兩個很常見的原因:

1:這里有錯誤; 解析器在行中找到非法字符。 在字符串文字之后立即調用函數(沒有行終止符,例如分號,或者在它們之間沒有運算符,例如)會導致解析器輸出錯誤,然后解析器將猜測您可能忘記了終止行這里。

2:您實際上忘記了終止線路。 但是,解析器會抱怨它發現非法字符所在的行,通常,您會希望在上面一行的末尾加上分號:

myFunction() // <-- Oops, missing a semi-colon!
myOtherFunction();

您需要使用concat運算符(點)。

echo "First published " . the_time('F - j - Y') . " |";

有兩種方法可以解決此問題。

第一種是其他所有人都使用的相同方法:字符串串聯:

echo "First published " . the_time('F - j - Y') . " |";

另一種方法是在每個字符串之間添加逗號。 之所以可行,是因為echo需要多個參數。

echo "First published ", the_time('F - j - Y'), " |";

不過,我不知道它是否比字符串連接更快。

暫無
暫無

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

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