在PHP中使用HTML如果声明

在PHP中使用HTML如果声明

问题描述:

我在Wordpress中有一个PHP文件,它有一些HTML,“登录&注册表”,我只想在网站的成员未登录时显示。当他们登录时,我希望它显示“欢迎,[姓名]”。在PHP中使用HTML如果声明

我只是不确定如何在PHP If语句中使用HTML。条件是这样的:

<?php 
     if (member_is_logged_in()) { 
     print "Welcome [name]"; 
     } else { 
     print "<a href="...">Login</a> | <a href="...">Register</a>"; 
     } 
?> 

这就是我认为它应该看起来,但它不工作。我对PHP并不擅长,但我会很感激任何帮助。谢谢!

+1

您是否尝试过echo? – 2012-08-09 03:33:10

+2

它不工作,没有输出?没有检测到登录状态? – 2012-08-09 03:34:03

+0

Sacheleen和Gordan提供了非常好的答案..另一种解决方案是您选择的报价。如果你用双引号包装你的字符串并且在字符串中有一个双引号,那么你打破了你的字符串,所以你可以通过在它之前加一个'\'来转义它'''',这个逻辑也适用于单引号。 – chris 2012-08-09 03:35:58

您可以使用双引号的字符串PHP变量。所以只需用$ name或任何变量替换[name]即可。请注意,这将而不是使用单引号。

另外,你在else情况下有两组双引号。这将导致语法错误。使其中一个单引号或逃避内部引号。

<?php 
     if (member_is_logged_in()) { 
     print "Welcome $name"; 
     } else { 
     print '<a href="...">Login</a> | <a href="...">Register</a>'; 
     } 
?> 

您也可以直接结束PHP标记并直接写HTML。

<?php 
     if (member_is_logged_in()) { 
     print "Welcome $name"; 
     } else { 
?> 
     <a href="...">Login</a> | <a href="...">Register</a> 
<?php 
     } 
?> 

存在一个更好,更容易阅读语法如下:

<?php if(<your evaluation here>): ?> 
HTML for when true 
<?php else: ?> 
HTML for when false 
<?php endif; ?> 

退房Alternative syntax for control structures更多这方面的信息。

虽然我们在这,print vs echo, which one is faster?

+0

我知道这是一个偏好问题,但我发现混合PHP和HTML的方式在你描述的“更好”的语法难以阅读,第二种语法是可怕的 - 不仅仅是PHP和HTML的混合,而是混合PHP和混合PHP和HTML。 – cori 2012-08-09 03:46:02

+0

只提供可用的选项。:)就我个人而言,我喜欢选项3,但我同意2。 – sachleen 2012-08-09 03:49:15

简单:

<?php 
     if (member_is_logged_in()) { 
     print "Welcome $name"; 
     } else { ?> 
     <a href="...">Login</a> | <a href="...">Register</a> 
     <?php } 
?> 

如果你可以使用WordPress试试下面的代码:

见UTL: - http://codex.wordpress.org/Function_Reference/wp_get_current_user

例如:要确定是否有当前登录用户在,这样做:

<?php 
$current_user = wp_get_current_user(); 
if (0 == $current_user->ID) { 
    // Not logged in. 
} else { 
    // Logged in. 
} 
?> 

试试这个代码块,让我知道---

<?php 
     if (member_is_logged_in()) { 
    global $display_name; 
    get_currentuserinfo(); 
     print "Welcome ".$display_name; 
     } else { 
     print "<a href="...">Login</a> | <a href="...">Register</a>"; 
     } 
?>