Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:使用GOTO跳过HTML的呈现_Php - Fatal编程技术网

PHP:使用GOTO跳过HTML的呈现

PHP:使用GOTO跳过HTML的呈现,php,Php,如果有人在其他地方问过这个问题,我会道歉。我确实搜索过,但我认为这是一个利基问题 我目前使用一个简单的GOTO逻辑,根据用户权限跳过某些HTML元素的呈现。我想知道这种方法是否有根本性的错误,如果有,首选的替代方案是什么 我问的一个主要原因是,我正在慢慢地将现有代码迁移到一种更MVC的方法,我不确定GOTO是否与MVC特别兼容 非常感谢您的回答 例如: <?php $isUserAdmin = 0; ?> <html> <?php if(!$isUserAdmin

如果有人在其他地方问过这个问题,我会道歉。我确实搜索过,但我认为这是一个利基问题

我目前使用一个简单的GOTO逻辑,根据用户权限跳过某些HTML元素的呈现。我想知道这种方法是否有根本性的错误,如果有,首选的替代方案是什么

我问的一个主要原因是,我正在慢慢地将现有代码迁移到一种更MVC的方法,我不确定GOTO是否与MVC特别兼容

非常感谢您的回答

例如:

<?php
$isUserAdmin = 0;
?>

<html>
<?php if(!$isUserAdmin) {goto notAdmin;} ?>
<a href="/admin.php">Admin Control Panel</a>
<?php notAdmin:  ?>
<a href="/vieworders.php">View Orders</a>
</html>


另外,在我想要明确限制的页面上,有一个实际的明确检查,它将重定向这些页面。

通常不建议使用
goto
,因为它可能导致所谓的意大利面代码。意大利面代码是
goto
语句向您发送所有源代码的地方,而不是像预期的那样从上到下运行代码,特别是对于非OOP解释的代码

在您的特定情况下,您可以简单地使用
if
语句

<?php if ($isUserAdmin): ?>
<a href="/admin.php">Admin Control Panel</a>
<?php endif; ?>
<a href="/vieworders.php">View Orders</a>


完全有道理,谢谢。MVC模型是否普遍接受这种方法?因为if语句必须放在视图中。非常感谢!以我的经验,是的。例如,Laravel使用这种方法,例如,根据用户是否登录,在主菜单上显示登录或注销按钮。明白了,所有这些对我来说都很有意义-我将开始迁移到这种方法。谢谢:)。