注意:文件编号只是为了让我更容易参考每个文件
我正在测试一些代码,其中我有一个名为first.txt
的文件(文件1)和名为tom-first.php
的文件(文件2),文件2文件检查文件1是否存在并设置了变量,然后在我的index.php
(文件3)中,我需要文件2,如果变量是1,我重定向到startup.php
(文件4)。文件4删除名为text.txt
我的错误是当我运行代码时,无论发生什么,test.txt总是被删除
TOM-first.php
<?php
if (file_exists('first.txt')) {
$first = '1';
} else {
$first = '0';
}
echo $first;
?>
的index.php
<?php
require 'tom-first.php';
if($first = '1')
{
header("Location: startup.php");
}
else
{
echo 'HI';
}
?>
Startup.php
<?php
unlink('text.txt')
?>
First.txt为空
我觉得错误与在文件2上设置变量有关,尽管回显$ first显示正确的数字。
任何帮助都表示赞赏,即使是完全不同的方法也是有用的,我基本上试图建立一个系统,它有一个首次使用时运行的设置。
答案 0 :(得分:1)
index.php 文件中有拼写错误。
PHP中的等式比较运算符是'==',而不是'='。
下面的if语句将值“1”分配给 $ first 变量,并始终计算为“1”。
<强>的index.php 强>
<?php
require 'tom-first.php';
if($first = '1') // this should be $first == '1'
{
header("Location: startup.php");
}
else
{
echo 'HI';
}
?>
答案 1 :(得分:0)
使用=
进行分配(为变量赋值)。但是==
是一个比较运算符。在您的情况下,您正在评估始终为1
的{{1}}。另一件事是,为什么如此冗长和如此多的文件,如果你可以写:
TRUE
然后其余的。甚至更好......
$first = file_exists('first.txt') ? 1 : 0;
但是...... :) 如果你必须这样做,那就非常smells。 为什么要检查是否存在文件只是为了立即将其删除?