这可能是关于php的一个基本问题,但我无法弄清楚如何解决它。
好吧,我有一个名为globals.php的文件
<?php
$DATA = array(
'first' => 'LOL',
'second' => 'Whatever'
);
?>
我还有另一个文件(omg.php),其中包含以下功能:
<?php
require_once('globals.php');
function print_text_omg($selector = 0){
global $DATA; //added this line of code. NOW IT WORKS
$var = '';
if($selector == 0){
$var = '';
}else{
$var = 'Hi. ';
}
//$DATA is a variable from globals.php that is supposed to be declared in require_once('globals.php');
//$var is a variable inside the function print_text_omg
//I am trying to concatenate string $var with the string $DATA['first']
$finaltext = $var.$DATA['first'];
echo $finaltext;
}
?>
然后,在main.php中我有这个:
<?php
include('omg.php');
print_text_omg();
print_text_omg(1);
?>
这应该打印如下:
//LOL
//Hi. LOL
相反,我有这个警告:
注意:未定义的变量:DATA in ...
$finaltext = $var.$DATA['first'];
更新
感谢用户Casimir et Hippolyte的建议,我已编辑了我的功能,现在可以使用了。添加了适用于我的行。
答案 0 :(得分:1)
它不起作用,因为$DATA
不属于您的功能范围。
要在函数中使$DATA
可用,必须将其作为参数传递给函数,或将$DATA
定义为全局变量。
问题与require_once
无关。
答案 1 :(得分:0)
错误是正确的,首先我无法找到您在哪里声明$var
(也许它应该是某个类的对象?)并且$var
不包含$ DATA数组,最后,php中的.
运算符用于连接字符串,对象导航是->
运算符
答案 2 :(得分:0)
您尚未声明变量$var
,而.
是php的连接运算符。尝试将代码更改为此
$finaltext = $DATA['first']
;