2

当我使用条件语句时,我有点困惑

<?php
    if(isset($_POST['somevalue'])){

?>

<h1> this is out side php mode now </h1>

<?php

}else {

?>

<h1> again its out php mode </h1>

<?php
}

?>

但它仍然有效我的意思是如果设置了 $_POST['somevalue'] 然后它输出“这是现在的外部 php 模式”如果不是它输出“再次输出 php 模式”我的问题是如果我在 php 模式之外如何那么它有效吗?

4

5 回答 5

2

我认为您的问题是“ PHP 的工作原理”。因为我们知道 php 是一种服务器端语言。它在服务器中执行,但 html 代码的范围将在 if 循环内。所以

<?php
    if(isset($_POST['somevalue'])){

?>

将在服务器中而不是在 html 部分中进行评估,这将是真或假。所以在服务器中执行之后,您在前端的代码,即 html 部分中的代码将是这样的

 <?php
        if(1){

    ?>
<h1> this is out side php mode now </h1>
//as above code is markup language so it will be interpreted by the browser

<?php

}else {

?>

<h1> again its out php mode </h1>

<?php
}

?>

注意:分隔符是为了让服务器知道标签内的代码是php代码,它会相应地执行它。

在此处输入图像描述

于 2013-11-12T05:25:19.667 回答
1

尽管您已经关闭了 PHP 代码的可执行部分,但周围的 if 语句和花括号实际上对于执行什么和不执行什么具有更高的优先级。

<?php
if
{
    // This is considered inside the statement 
    // and will only be sent if the execution 
    // makes it inside the statement.
    ?>
    ...
    <?php
}
else
{

}
?>
// Anything here is simply sent to the browser
// as it will always executed.
<?php

// more code etc

?>

IF 语句中的任何内容都被视为 IF 的一部分——即使它包含关闭/打开 PHP 标记。

基本上,PHP 控制结构会覆盖打开/关闭标签。这意味着任何类型的 if、switch、function 等都比打开关闭标签具有更高的优先级。

于 2013-11-12T05:24:39.543 回答
0

That's one thing I love about php. Initially, the main reason is as @Fluffeh mentioned that you are still within the "if" statement.

One way I could put it is that, PHP allows to be embeded in side HTML code. As long as the file has a .php extention then (someone correct me if I'm wrong) Apache knows to use the PHP processor to process that file. It will process the php coding and display the HTML sections in it as well.

Your question is some what similar to

<?php
$name = "Tom";
?>

<h1>Hello <?php echo $name;?>!</h1>

The result will come out as Hello Tom!

于 2013-11-12T05:25:44.197 回答
0

PHP 文件被处理为纯文本/html,直到它<?php在执行 php 代码时到达标签。当它到达关闭?>时,它再次将其作为纯文本处理。

这完全相同,但在要打印的 html 周围带有回显和引号。如果您在阅读代码时遇到问题,我建议您根据需要缩进。

<?php
    if(isset($_POST['somevalue'])){
        echo "<h1> this is out side php mode now </h1>";
    }else {
        echo "<h1> again its out php mode </h1>";
    }
?>

你发布的方式。

<?php
    if(isset($_POST['somevalue'])){
        ?><h1> this is out side php mode now </h1><?php
    }else{
        ?><h1> again its out php mode </h1><?php
    }
?>
于 2013-11-12T05:33:15.827 回答
0

它与 php 内部的想法相同。满足每个条件,它将运行其相应的语句。

这是 php 的最佳特性之一,它允许我们使用原生 html 代码,而不是将其放在 echo 中。

于 2013-11-12T05:40:38.120 回答