【问题标题】:Is it possible to use a PHP variable from the main php page in an php included file?是否可以在 php 包含文件中使用主 php 页面中的 PHP 变量?
【发布时间】:2018-02-18 23:46:34
【问题描述】:

我有一个名为“main.php”的“主”php 网页,还有一个名为“cmets.php”的包含文件。

在 main.php 中,我使用以下内容获取页面的 url,但我试图在包含的文件 (cmets.php) 中使用 $shareURL 变量,但它不起作用。

Main.php 中的代码

<?php $shareURL = "http://".$_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\']; ?>

上面是变量。 以下是包含。

<?php include "$domainName/assets/includes/fbCommentBox.php"; ?>

包含文件中的代码 (comment.php)

<?php echo "<div class='fb-comments' data-href='$shareURL' data-num-posts='5' data-width='100%'></div>"; ?>

如果我在包含的文件中使用上述内容,我会得到包含文件的页面 URL,而不是 main.php 页面。

是否有一种方法可以在 main.php 页面中使用 php 变量,将其值传递到包含的 (cmets.php) 文件中?

项目范围

main.php 代码被放置在另一个用于创建网页的 php 变量的“内部”。我需要&lt;?php $shareURL = "http://".$_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\']; ?&gt; 中的\

示例

<?php
$content = ' 
<?php $shareURL = "http://".$_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\']; ?>
';
?>

【问题讨论】:

  • 请说明您如何尝试使用该变量。其实应该没问题的。包含的文件被视为一个文件。
  • @Mr.B,尝试展示更多关于您的代码的信息。也许您的问题没有得到清楚的解释。
  • 如果您的问题是关于变量的,请参阅 PHP 手册中的内容:包含文件时,它包含的代码会继承包含发生的行的变量范围。从那时起,调用文件中该行的任何可用变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局范围。
  • 好的,我想我明白你想做什么了。您正试图通过将 $shareURL 作为字符串传递来将其声明到另一个 PHP 文件中。并且您期望这个 $shareURL 应该在插入后自动声明。对吗?
  • @Mr.B 为什么不直接声明 $shareURL ?

标签: php variables


【解决方案1】:

一种更好的[比全局变量],虽然可能涉及更多,方法是将包含文件中的所有代码包装在函数或类中,然后在从主函数调用它们时将变量传递给这些函数文件。

编辑:根据下面的评论,删除了我使用 global 的建议。 global 仅适用于在作用域之间共享变量的情况,即在一个函数与另一个函数之间或函数体与全局空间之间。

【讨论】:

  • 您不需要global 来使用包含文件中的变量。 global 与所提出的问题相切(至少在准确阅读的情况下)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多