$ name和$$ name有什么区别?

时间:2014-01-22 17:05:25

标签: php forms email variables

我一直在处理电子邮件表单并遇到了问题。

<?php 
 $to = $_REQUEST['sendto'] ; 
 $from = $_REQUEST['Email'] ; 
 $name = $_REQUEST['Name'] ; 
 $headers = "From: $from"; 
 $subject = "Web Contact Data"; 

 $fields = array(); 
 $fields{"Name"} = "Name"; 
 $fields{"Company"} = "Company"; 
 $fields{"Email"} = "Email"; 
 $fields{"Phone"} = "Phone"; 
 $fields{"list"} = "Mailing List"; 
 $fields{"Message"} = "Message"; 

 $body = "We have received the following information:\n\n"; foreach($fields as $a => $b){   $body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]); } 

 $headers2 = "From: noreply@YourCompany.com"; 
 $subject2 = "Thank you for contacting us"; 
 $autoreply = "Thank you for contacting us. Somebody will get back to you as soon as possible, usualy within 48 hours. If you have any more questions, please consult our website at www.oursite.com";

 if($from == '') {print "You have not entered an email, please go back and try again";} 
 else { 
 if($name == '') {print "You have not entered a name, please go back and try again";} 
 else { 
 $send = mail($to, $subject, $body, $headers); 
 $send2 = mail($from, $subject2, $autoreply, $headers2); 
 if($send) 
 {header( "Location: http://www.YourDomain.com/thankyou.html" );} 
 else 
 {print "We encountered an error sending your mail, please notify webmaster@YourCompany.com"; } 
 }
}
 ?> 

我试图运行它,但是$name变量一直出错。我做了一些研究,发现我也可以使用$$name。我经历过它并且没有用,所以我决定改变脚本的其他部分。我需要知道$name还是$$name。我做了一些研究,发现$$name是一个参考变量,而$name只是一个变量。我需要知道每个人的结果是什么,我应该使用哪一个。

4 个答案:

答案 0 :(得分:4)

$$名称可能不是您要找的

$abc = 'def';
$name = 'abc';

echo $name;  // this will output abc
echo $$name; // this will output def

您可以从http://www.php.net/manual/en/language.variables.variable.php

了解php变量

答案 1 :(得分:2)

这是一个变量变量:

$x = 'foo';
$foo = 'bar';
$$x = 'baz';
echo "$x $foo"; // outputs 'foo baz', not 'foo bar';

$$var基本上是说“获取$ var的内容,并使用该内容作为变量的名称,并分配给该变量”。

答案 2 :(得分:1)

似乎你想使用数组

$fields = array(); 
$fields["Name"] = $_REQUEST['Name']; 
$fields["Company"] = $_REQUEST['Company']; 
$fields["Email"] = $_REQUEST['Email']; 
$fields["Phone"] = $_REQUEST['Phone']; 
$fields["Mailing list"] = $_REQUEST['List']; 
$fields["Message"] = $_REQUEST["Message"]; 

你的脚本现在可以正常工作了。

如果要包含$ _REQUEST中的数据,请尝试这种方式。

您也可以粘贴php表单,我们可以提供更优化的解决方案

答案 3 :(得分:0)

当你在变量前添加$时,你将它变成一个动态变量。如果您希望能够在变量之间切换,这很方便。