php 单引号和双引号 $_FILES
Posted
技术标签:
【中文标题】php 单引号和双引号 $_FILES【英文标题】:php single vs. double quotes $_FILES 【发布时间】:2017-04-30 18:57:09 【问题描述】:我是 php 新手,现在正在学习我的第一门课程。对于我的生活,我无法弄清楚为什么只有 $screenshot = $_FILES["screenshot"]["name"] 需要双引号。我最初有单引号,但它不起作用。我随机决定尝试双引号并开始工作......有人可以告诉我为什么吗?
<?php
// Define the upload path and maximum file size constants
define('GW_UPLOADPATH', 'images/');
if (isset($_POST['submit']))
// Grab the score data from the POST
$name = $_POST['name'];
$score = $_POST['score'];
$screenshot = $_FILES["screenshot"]["name"];
if (!empty($name) && !empty($score))
// Move the file to the targe upload folder
$target = GW_UPLOADPATH . $screenshot;
// Connect to the database
$dbc = mysqli_connect('localhost', 'root', 'Bandito8', 'gwdb')
or die('Unable to connect to databse');
// Write the data to the database
$query = "INSERT INTO guitarwars VALUES (0, NOW(), '$name', '$score', '$screenshot')";
mysqli_query($dbc, $query)
or die('Unable to complete query');
// Confirm success with the user
echo '<p>Thanks for adding your new high score!</p>';
echo '<p><strong>Name:</strong> ' . $name . '<br>';
echo '<strong>Score:</strong> ' . $score . '</p>';
echo '<img src="' . GW_UPLOADPATH . $screenshot . '" ></p>';
echo '<p><a href="index.php"><< Back to high scores</a></p>';
// Clear the score data to clear the form
$name = "";
$score = "";
$screenshot = "";
mysqli_close($dbc);
else
echo '<p class="error">Please enter all of the information to add your high score.</p>';
?>
【问题讨论】:
What is the difference between single-quoted and double-quoted strings in PHP?的可能重复$screenshot = $_FILES["screenshot"]["name"]
和 $screenshot = $_FILES['screenshot']['name']
应该以完全相同的方式工作;你一定也改变了其他东西
它应该可以使用单引号,我相信一定有一些错误,尝试var_dump($_FILES['screenshot']['error'])
并检查错误详细信息here
在使用 var_dump 进行了大量试验和错误更改后,我以某种方式使用单引号 - 谢谢 Mahesh!
【参考方案1】:
php 解析器尝试将双引号中的字符串解释为变量,而单引号中的字符串被解释为字面字符串...
php 解释正在搜索变量,由于没有找到任何变量,因此需要更多的 php 时间...
echo $_FILES["upload"]["size"];
php 解释正在搜索字符串,由于它没有找到任何变量,因此花费更少的 php 时间......
echo $_FILES['upload']['size'];
另一个例子:
此示例将 $hidden 视为变量并且可以正常工作...
echo "the red fox was $hidden to the hunter";
此示例将 $hidden 视为字符串,无法按预期工作...
echo 'the red fox was $hidden to the hunter';
希望这会有所帮助!
【讨论】:
以上是关于php 单引号和双引号 $_FILES的主要内容,如果未能解决你的问题,请参考以下文章