这个PHP有什么问题?

时间:2011-05-16 14:19:42

标签: php wordpress syntax-error

我收到此语法错误:解析错误:语法错误,意外T_STRING,期待','或';'在this page上的第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(); ?> 

5 个答案:

答案 0 :(得分:6)

你的问题是:

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') . " |";

答案 1 :(得分:1)

而不是

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”版本返回值而不回显它。

答案 2 :(得分:1)

如果这确实来自Wordpress的代码,并且the_time()自己回响,是的,那么你需要将回声放在不同的行上:

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

旁注:

当解析器抱怨您缺少分号(;)时,我发现有两个非常常见的原因:

1:你在这里犯的错误;解析器在线上找到并且非法字符。在字符串文字之后立即进行函数调用(没有行结束符,如分号,或者像它们之间的运算符)将导致解析器输出错误,然后解析器会猜测您可能忘记终止该行这里。

2:你实际上忘了终止这条线。但是然后解析器会抱怨它找到非法字符的行,通常,你会想要在上面一行的末尾添加分号:

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

答案 3 :(得分:0)

您需要使用concat运算符(点)。

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

答案 4 :(得分:-1)

有两种方法可以解决这个问题。

第一种方法与其他人一样:字符串连接:

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

另一种方法是在每个字符串之间添加逗号。这有效的原因是因为echo需要多个参数。

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

我不知道它是否比字符串连接更快。