如何在本声明中正确引用引号

时间:2013-05-06 09:12:29

标签: php if-statement quotes

我需要从函数返回一个输入框,但我可以正确地输入引号。任何人请帮我解决错误。

<?php
 return "
<input  style='background-color:#CCC;'type='text' name='contactName' id='contactName' value='".if(isset($_POST['contactName'])) echo $_POST['contactName']."' class='requiredField' />";

4 个答案:

答案 0 :(得分:4)

使用此

<?php
 return '
<input  style="background-color:#CCC;" type="text" name="contactName" id="contactName" value="'.(isset($_POST['contactName'])?$_POST['contactName']:'').'" class="requiredField" />';

对于内联,如果输出somthing则使用以下语法:

( condition ? 'the thing that will return when condition true' : 'the false returned string' )

答案 1 :(得分:1)

<?php
if(isset($_POST['contactName'])) {$contactname=$_POST['contactName'];}
 return "<input  style='background-color:#CCC;'type='text' name='contactName' id='contactName' value='".$contactname."' class='requiredField' />";
?>

答案 2 :(得分:0)

您可以改为将其分解并返回值,而不是一行写入。

if(isset($_POST['contactName'])) {
    $value = $_POST['contactName'];
} else {
    $value = "";
}

$input  = '<input style="background-color:#CCC;" type="text" name="contactName" id="contactName" ';
$input .= 'value="'. $value .'" ';
$input .= 'class="requiredField" ';
$input .= '/>';

return $input;

此外,我可以看到您正在分配值而不进行处理。这是不正确的。 所以,它应该是这样的:

if(isset($_POST['contactName'])) {
        $value = stripslashes($_POST['contactName']);
    } else {
        $value = "";
    }

如果您使用的是PDO,也可以使用任何其他转义方法。

答案 3 :(得分:-1)

另一个简单的解决方案

    <?php 
     if(isset($_POST['contactName']))
        {
         return "<input  style='background-color:#CCC;'type='text' name='contactName' id='contactName' value='".$_POST['contactName']."' class='requiredField' />";
        }
     ?>