我是PHP的新手,并且遇到了这个代码的一个小问题。我正在尝试为使用更多PHP填充空白的页面制作布局。
当我查看来源<? include $navbar ?>
被注释掉但<?=$pagetitle?>
有效时,为什么会这样?
供参考:
$navbar = "navbar.php";
和navbar.php
:
<?php echo "Select Car Change Profile"; ?>
layout.php中:
<?php
echo "
<html>
<head>
<title>Race Data. <?=$pagetitle?></title>
</head>
<body>
<div id='page'>
<table border='1'>
<tbody>
<tr>
<td colspan='3'>Banner goes here.<?=$pagetitle?></td>
</tr>
<tr>
<td rowspan='2'>Left menu</td>
<td colspan='2'><? include $navbar; ?></td>
</tr>
<tr>
<td>Content</td>
<td>Right menu</td>
</tr>
<tr>
<td colspan='3'>Footer</td>
</tr>
</tbody>
</table>
</div>
</html>
";
?>
我确信知道这将有助于我遇到的未来问题。
此外,使用<? ?>
与<?php ?>
有何不同?
答案 0 :(得分:4)
在php中,您始终需要使用<?php /*code*/ ?>
回复某些内容的简写版本为<?= /*string*/ ?>
,但要运行代码,例如include
,您需要以<?php
开头。在您的示例中,这将是:
<tr>
<td rowspan='2'>Left menu</td>
<td colspan='2'><?php include $navbar; ?></td>
</tr>
我只是注意到你将PHP标记放在另一组PHP标记中。你很难做到这一点。在PHP文件中,除<?php ?>
标记内的内容外,任何内容都被视为回显。所以这应该对你有用:
<html>
<head>
<title>Race Data. <?=$pagetitle?></title>
</head>
<body>
<div id='page'>
<table border='1'>
<tbody>
<tr>
<td colspan='3'>Banner goes here.<?=$pagetitle?></td>
</tr>
<tr>
<td rowspan='2'>Left menu</td>
<td colspan='2'><?php include $navbar; ?></td>
</tr>
<tr>
<td>Content</td>
<td>Right menu</td>
</tr>
<tr>
<td colspan='3'>Footer</td>
</tr>
</tbody>
</table>
</div>
</html>
不同之处在于我没有在整个事情中放置<?php ?>
个标签。
答案 1 :(得分:0)
尝试
short_open_tag=On;
在php.ini中
重新启动Apache服务器。