PHP字符串concat不会触发

时间:2012-06-12 11:49:52

标签: php string concatenation

我有以下一些代码来检查是否正确填充了包含多个字段的表单。问题是,它没有正确地连接字符串。

以下是代码的一些代码:

if(strlen($name) < 2 || strlen($email) < 6 || strlen($subject) < 5 || strlen($message) < 15){
                $alert = "There are some problems: \n";

                if(strlen($name) < 2){
                    $alert . "Name is too short \n";
                }

                if(strlen($email) < 6){ 
                    $alert . "email is too short \n";
                }

                if(strlen($subject) < 5){
                    $alert . "The subject is too short \n";
                }

                if(strlen($message) < 15){ 
                    $alert . "Your message is too short \n";
                }

                $alert . "Please fill in te fields correctly";

                echo $alert;
                ?>
                <script>
                alert("<?= $alert ?>");
                </script>
                <?php
            }
            else { ... } ?>

如果我在每个if语句中放置一个echo,它会显示它会触发,但最后所有得到警报并被回显打印的是“有一些问题:”
为什么警报字符串没有正确连接?我尝试删除每个句子中的\ n,但这也不起作用。

2 个答案:

答案 0 :(得分:2)

您应该$alert .= "something",而不仅仅是$alert . "something"

答案 1 :(得分:0)

你不能连接这样的变量,使用.=

.将连接左右参数。 .=将右侧的论点附加到左侧的论证中。

if(strlen($name) < 2 || strlen($email) < 6 || strlen($subject) < 5 || strlen($message) < 15){
            $alert = "There are some problems: \n";

            if(strlen($name) < 2){
                $alert .= "Name is too short \n";
            }

            if(strlen($email) < 6){ 
                $alert .= "email is too short \n";
            }

            if(strlen($subject) < 5){
                $alert .= "The subject is too short \n";
            }

            if(strlen($message) < 15){ 
                $alert .= "Your message is too short \n";
            }

            $alert .= "Please fill in te fields correctly";

            echo $alert;
            ?>
            <script>
            alert("<?= $alert ?>");
            </script>
            <?php
        }
        else { ... } ?>