这个有两个 elseif 的 if 语句有什么问题?

发布于 2024-11-28 16:55:23 字数 735 浏览 1 评论 0原文

这是代码:

<?php if ( $current_language == es-ES ) : ?>
 <?php next_post_link( '%link', 'Proyecto Siguiente ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php elseif($current_language == zh-TW) : ?>
 <?php next_post_link( '%link', '下一個項目 ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php elseif($current_language == zh-CN) : ?>
 <?php next_post_link( '%link', '下一个项目 ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php else : ?>
 <?php next_post_link( '%link', 'Next Project ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php endif; ?>

出于某种原因,即使语言设置为 zh-TW(繁体中文),我仍然收到“Proyecto Siguiente”。

有什么建议吗?

This is the code:

<?php if ( $current_language == es-ES ) : ?>
 <?php next_post_link( '%link', 'Proyecto Siguiente ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php elseif($current_language == zh-TW) : ?>
 <?php next_post_link( '%link', '下一個項目 ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php elseif($current_language == zh-CN) : ?>
 <?php next_post_link( '%link', '下一个项目 ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php else : ?>
 <?php next_post_link( '%link', 'Next Project ' . _x( '', 'next post link', 'twentyten' ) . '' ); ?>
<?php endif; ?>

For some reason, I'm still getting 'Proyecto Siguiente" even if the lang is set to zh-TW (Chinese Traditional).

Any suggestion?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幻想少年梦 2024-12-05 16:55:23

您没有再次引用要比较的字符串,因此 PHP 将它们视为常量(不存在)。它仍然可以工作,因为 PHP 首先查找名为 es-ES 的常量,并会抛出 E_NOTICE 级别的错误(未定义常量)。尝试:

if ( $current_language == 'es-ES' )

等等。

You are not quoting the strings agains which you are comparing, so PHP is taking them to be constants (which do not exist). It will still work because PHP first looks for a constant named es-ES and will throw an error of level E_NOTICE (undefined constant). Try:

if ( $current_language == 'es-ES' )

and so on.

開玄 2024-12-05 16:55:23

$current_language 是否对应于字符串?如果是这样,那么表达式的右侧需要加引号,因为目前 PHP 认为它们是常量。
放弃简写 PHP 也是一个好主意,但我不想引发争论。

<?php if ( $current_language == "es-ES" ){...

Does $current_language correspond to string? If so then the right hand side of your expressions need to be quoted because currently PHP thinks they are constants.
Ditching shorthand PHP would also be a good idea but I don't want to start an argument.

<?php if ( $current_language == "es-ES" ){...
戈亓 2024-12-05 16:55:23

你为什么使用所有这些 php 打开/关闭标签?为什么不在字符串周围使用引号?不管怎样,这是你清理过的代码,它应该可以工作:

<?php
    if ( $current_language == 'es-ES' ) {
        next_post_link( '%link', 'Proyecto Siguiente ' . _x( '', 'next post link', 'twentyten' ) . '' );
    } elseif( $current_language == 'zh-TW' ) {
        next_post_link( '%link', '下一個項目 ' . _x( '', 'next post link', 'twentyten' ) . '' );
    } elseif( $current_language == 'zh-CN' ) {
        next_post_link( '%link', '下一个项目 ' . _x( '', 'next post link', 'twentyten' ) . '' );
    } else {
        next_post_link( '%link', 'Next Project ' . _x( '', 'next post link', 'twentyten' ) . '' );
    }
?>

Why do you use all those php open/close tags? Why don't you use quotes around strings? anyway this is your code cleaned up and it should work:

<?php
    if ( $current_language == 'es-ES' ) {
        next_post_link( '%link', 'Proyecto Siguiente ' . _x( '', 'next post link', 'twentyten' ) . '' );
    } elseif( $current_language == 'zh-TW' ) {
        next_post_link( '%link', '下一個項目 ' . _x( '', 'next post link', 'twentyten' ) . '' );
    } elseif( $current_language == 'zh-CN' ) {
        next_post_link( '%link', '下一个项目 ' . _x( '', 'next post link', 'twentyten' ) . '' );
    } else {
        next_post_link( '%link', 'Next Project ' . _x( '', 'next post link', 'twentyten' ) . '' );
    }
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文