回显PHP变量会返回变量名称,而不是变量值

时间:2014-07-07 16:14:37

标签: php echo title

我正在创建一个网站,用PHP函数存储网站的基本代码,这样我就不必一遍又一遍地写出基本代码。在我的index.php页面中,我让它调用一个名为head的函数并传入几个变量。

这是我的index.php页面的代码:

<?php
    include "base.php";
    head("Home");
?>

它包含文件base.php,其中包含函数head。

这是头部功能:

<?
    function head($title) {
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title><?="$title | BASE"?></title>
        <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="css/main.css">
    </head>
</html>
<?php
    }
?>

正如您所看到的,head函数要求输入一个名为$ title的变量,并将其作为“Home”传入index.php。当页面执行而不是显示标题的Home | Base时,标题显示为<?="$title | BASE"?>。这是为什么?我需要标题显示为Home | Base,我不知道为什么它没有像那样出现。

2 个答案:

答案 0 :(得分:1)

您需要启用short_open_tag才能在以前版本的PHP中使用<?= $var; ?>语法(如果您使用的是PHP 5.4之前的版本)。

当然,您可以简单地使用标准PHP语法,以便更改

<?="$title | BASE"?>

<?php echo "$title | BASE"; ?>

如果您使用PHP&lt; 5.4或无法设置short_open_tag已启用

答案 1 :(得分:-3)

将$ title变量放在大括号中<?= echo "{$title} | Base"; ?>或使用.连接<?= $title . " | Base"; ?>

这将解析变量值而不是回显名称。只需将变量名称放在引号