使 PHP 文件中的 $var 设置在初始文件包含/需要的其他 PHP 文件中工作

Posted

技术标签:

【中文标题】使 PHP 文件中的 $var 设置在初始文件包含/需要的其他 PHP 文件中工作【英文标题】:Make $var set in a PHP file work in other PHP file included/required by the initial one 【发布时间】:2021-10-19 18:36:48 【问题描述】:

我在初始 php 文件中有以下代码:

$var = $another_var;
echo 'Some text '.$var.' some more text.';

产生$another_var 的代码不能移动到任何其他文件。

现在我希望将整个初始 PHP 文件的每个文本字符串(包括示例中的那个)放到一个额外的 PHP 文件中,并将 includerequire 放在初始文件中。像这样:

// required.php file
$text_string_1 = 'Some text '.$var.' some more text.';

// Initial PHP file
<?php require('required.php'); ?>
$var = $another_var;
<div><?php echo $text_string_1; ?>

预计它不起作用。我认为这是因为 required.php 文件对 $var 的值一无所知,因为它是在另一个将采用 required.php 的文件中设置的。

有什么解决方法吗?最好让这两个文件尽可能简单。

【问题讨论】:

我不是 100% 清楚您要做什么或您的确切问题是什么。但本质上,它非常简单。如果要在文件 B 中使用在文件 A 中定义的变量,则需要在文件 B 中包含/要求文件 A 才能使用它。然后,您可以在文件 C 中包含文件 B 并访问文件 A 中的变量。不确定这是否是您所要求的。如果不是,请澄清问题。 可能会将外部文件和初始文件视为单个文件。抱歉,我无法更好地解释,英语不是我妈妈的语言。 如果你想用另一个变量写一个变量,比如'foo' . $var . 'bar',你必须在这之前定义$var。在您的示例中,您需要先执行$var = $another_var;,然后再执行required.php 我没有说“内部”。我有吗? 抱歉,我看错了 :-) 在定义变量之前,您根本无法使用或引用变量。如果您想稍后创建字符串和替换部分,则需要实现一些占位符,而不是在您想要使用它们时替换它们。 【参考方案1】:

您可以更改为模板方法。稍后替换:

<?php

$template = 'Hello %s, this could be a solution.';

$txt = sprintf($template, 'Foo');

echo $txt;

输出:

Hello Foo, this could be a solution.

【讨论】:

它只是工作。而且相当优雅。非常感谢您的意见,非常感谢!

以上是关于使 PHP 文件中的 $var 设置在初始文件包含/需要的其他 PHP 文件中工作的主要内容,如果未能解决你的问题,请参考以下文章

代码审计读书笔记一

如何使用包含的 php 文件中的 php 变量

如何将 PHP 生成的 XML 文件包含到 flash vars 中,同时将当前的 php 函数传递到其中?

C如何定义一个变量使他在其他源文件中也可以被使用同一个工程下

数组中的php未设置键使脚本失败[关闭]

如何使我的 php 项目像 .exe 文件一样可分发