Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有其他我不知道的分配PHP变量的方法?_Php_Smarty_Variable Assignment - Fatal编程技术网

有没有其他我不知道的分配PHP变量的方法?

有没有其他我不知道的分配PHP变量的方法?,php,smarty,variable-assignment,Php,Smarty,Variable Assignment,我正在调试一些让我感到困惑的客户端PHP代码。正如这个伪示例所示,表单提交的接收端有一个代码,它处理表单值,但从来没有明显地分配这些值: 在提交表单时,表单包含“名称”和“位置”字段: echo "The name is = ". $name; echo "The position is = ". $position; 此代码是大型应用程序的一部分,在此之前会调用其他文件中的代码。但关键的一点是,如果我在整个代码库中搜索“$name=”,它永远不会出现。那么,请求变量如何被分配到$name呢?

我正在调试一些让我感到困惑的客户端PHP代码。正如这个伪示例所示,表单提交的接收端有一个代码,它处理表单值,但从来没有明显地分配这些值:

在提交表单时,表单包含“名称”和“位置”字段:

echo "The name is = ". $name;
echo "The position is = ". $position;
此代码是大型应用程序的一部分,在此之前会调用其他文件中的代码。但关键的一点是,如果我在整个代码库中搜索“$name=”,它永远不会出现。那么,请求变量如何被分配到$name呢?在PHP中,除了$var=value之外,还有其他方法给变量赋值吗


我唯一的另一个线索是,这个项目使用Smarty,我对此一无所知。

听起来像是有人包含了这些变量,打算用它们做更多的事情,但从来没有这样做过。除非include php页面为这些变量赋值,否则这些变量中不会有任何内容。

在我看来,有人包含这些变量是为了更好地使用它们,但从来没有这样做过。除非include php页面将值分配给这些变量,否则这些变量中不会有任何内容。

可能是创建代码的人正在使用on的服务器上工作。例如,这样做的目的是创建常规全局变量作为表单提交的结果,而不是填充$\u POST或$\u GET数组。

可能是创建代码的人正在使用的服务器上。例如,这样做的目的是创建常规全局变量作为表单提交的结果,而不是填充$\u POST或$\u GET数组。

我猜您的服务器启用了register\u globals设置,它会自动从发布的项目生成变量:

$_POST['foo'] === $foo

我猜您的服务器已启用register_globals设置,该设置会自动从发布的项目生成变量:

$_POST['foo'] === $foo

如果该指令在php.ini中设置为true,那么所有POST属性也将以您描述的方式显示为单个变量。请注意,默认情况下,此指令为false,不推荐使用此指令。

如果在php.ini中将该指令设置为true,则所有POST属性也将以您描述的方式显示为单个变量。请注意,默认情况下,此指令为false,不推荐使用此指令。

尝试提高错误报告级别,如果这些变量正在使用但尚未初始化,将显示警告

如果这些变量正在使用但尚未初始化,尝试提高错误报告级别,当您查看时,将显示一条警告,您可以看到从链接页面复制的变量分配如下:

<?php

$smarty = new Smarty();

$smarty->assign('firstname', 'Doug');
$smarty->assign('lastname', 'Evans');
$smarty->assign('meetingPlace', 'New York');

$smarty->display('index.tpl');

?>
当您查看时,您可以看到变量是这样分配的,它是从链接页面复制的:

<?php

$smarty = new Smarty();

$smarty->assign('firstname', 'Doug');
$smarty->assign('lastname', 'Evans');
$smarty->assign('meetingPlace', 'New York');

$smarty->display('index.tpl');

?>

从技术上说是的

$x = 'name';
$$x = 'harry';
echo 'Yer a wizard '.$name;

如果这就是原因的话,我会感到惊讶。从技术上讲,是的

$x = 'name';
$$x = 'harry';
echo 'Yer a wizard '.$name;

如果这就是原因的话,我会很惊讶,也许这是又一次疾病的爆发


这被认为已经消失了,但一次又一次地浮出水面

这可能是该病的又一次爆发


这被认为已经消失了,但一次又一次地浮出水面

+1用于提及Smarty,即使可能不正确;但是,这不只是影响tpl模板文件中可用的变量吗?我不确定,我从来没有真正使用过smarty,但我认为它使用了一些方法将变量分配给视图,就像这样分配。我只是想给你一个提示,告诉你在这个世界上还需要什么code@Yarin不,分配变量应该发生在.php文件中,该文件是将数据传递给视图的控制器。在.tpl文件中,您可以像这样访问这些变量:Hello{$firstname}{$lastname},很高兴看到您能做到这一点。再次摘自文件罗杰-这不是最终的罪魁祸首,但很高兴知道。+1感谢提及Smarty,即使可能不正确;但是,这不只是影响tpl模板文件中可用的变量吗?我不确定,我从来没有真正使用过smarty,但我认为它使用了一些方法将变量分配给视图,就像这样分配。我只是想给你一个提示,告诉你在这个世界上还需要什么code@Yarin不,分配变量应该发生在.php文件中,该文件是将数据传递给视图的控制器。在.tpl文件中,您可以像这样访问这些变量:Hello{$firstname}{$lastname},很高兴看到您能做到这一点。再次摘自文档罗杰-这最终不是罪魁祸首,但很高兴知道。谢谢你,它是梅奎因、贾斯莫和雅各布-我刚刚接受了教育谢谢你,它是梅奎因、贾斯莫和雅各布-我刚刚接受了教育,但在所有源代码页面中快速搜索“位置”应该会显示发生这种情况的证据。”“名字”可能太常见而无法搜索,但是
搜索“位置”并查看出现了什么。让我们知道这是不是真的!但只要在所有源代码页面中快速搜索“位置”,就会发现这种情况的证据“名称”可能太常见而无法搜索,但搜索“位置”并查看出现了什么。让我们知道这是不是真的!