标签之间的PHP全局变量

时间:2014-08-27 21:29:49

标签: php global-variables superglobals

所以在我的php文件中,我有多套开启和关闭的php标签。它基本上看起来像这样:

<input id="myID" type="text" value="<?php 
$value="x";
echo $value;
?>">
<input id="yourID" type="text" value="<?php echo $someValue; ?>"

有没有在第二组php括号中引用$value?我尝试使用GLOBAL['index']来引用$value,但是我得到了一个未定义的索引错误。

感谢任何帮助或指导。

2 个答案:

答案 0 :(得分:3)

只需使用echo $value

变量上下文不会因为您重新打开PHP标记而改变。 <?php?>只是解析器的标志,与您的代码在其中的作用无关。

由于您刚开始使用,我还建议您查看Smarty等模板引擎。这将帮助您将应用程序逻辑与输出分开。此外,请务必在HTML上下文中使用任意数据htmlspecialchars(),以确保转义保留字符,并且不创建任何XSS攻击点。

答案 1 :(得分:2)

PHP的变量范围是功能级别。关闭<?php ... ?>代码块并不会改变您的范围级别。

e.g。

<html>

<?php $x = 'foo'; ?>

<body>

<?php echo $x; ?>

会按预期输出foo。如果你使用的是函数,那么它就是另一回事了:

function foo() {
   $x = 'foo';
}
foo();
echo $x;  // undefined variable

无论你使用多少/ <?php ... ?>个代码块,这都不会改变。