Если утверждение оценивает ложное условие PhP

0

По какой-то причине моя условная инструкция оценивает false, когда она не является

$file_check=strpos(file_get_contents("database/file_register.txt"),basename($_FILES["fileToUpload"]["name"]));

echo "file=$file_check"; \\ equals 0 -> which is not False.

if(isset($_POST["submit"]) && ($file_check == False)) {$file_check='ok';}

else{echo "The document is already in use.";}

echo "file=$file_check"; \\ now it equals 'ok'
  • 0
    0 == false , кстати, ты не думаешь, что это false не False ?
Теги:

2 ответа

4
Лучший ответ

Ваше условие проверяет, является ли значение 0 == False истинным

Убедитесь в том, чтобы установить submit

Таблицы сравнения типов PHP

Сравнение $ x с функциями PHP

+------------------+------------+----------+------------+----------+------------------+
|   Expression     | gettype()  | empty()  | is_null()  | isset()  | boolean : if($x) |
+------------------+------------+----------+------------+----------+------------------+
| $x = "";         | string     | TRUE     | FALSE      | TRUE     | FALSE            |
| $x = null;       | NULL       | TRUE     | TRUE       | FALSE    | FALSE            |
| var $x;          | NULL       | TRUE     | TRUE       | FALSE    | FALSE            |
| $x is undefined  | NULL       | TRUE     | TRUE       | FALSE    | FALSE            |
| $x = array();    | array      | TRUE     | FALSE      | TRUE     | FALSE            |
| $x = false;      | boolean    | TRUE     | FALSE      | TRUE     | FALSE            |
| $x = true;       | boolean    | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = 1;          | integer    | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = 42;         | integer    | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = 0;          | integer    | TRUE     | FALSE      | TRUE     | FALSE            |
| $x = -1;         | integer    | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = "1";        | string     | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = "0";        | string     | TRUE     | FALSE      | TRUE     | FALSE            |
| $x = "-1";       | string     | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = "php";      | string     | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = "true";     | string     | FALSE    | FALSE      | TRUE     | TRUE             |
| $x = "false";    | string     | FALSE    | FALSE      | TRUE     | TRUE             |
+------------------+------------+----------+------------+----------+------------------+

== VS ===

  • Loose Comparison учитывает только значения.
  • Строгое сравнение учитывает значения и типы

Свободное сравнение с ==

    +----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+-------+
    |          | TRUE   | FALSE  |   1    |   0    |  -1    |  "1"   |  "0"   | "-1"   | NULL   | array()  | "php"  |  ""   |
    +----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+-------+
    | TRUE     | TRUE   | FALSE  | TRUE   | FALSE  | TRUE   | TRUE   | FALSE  | TRUE   | FALSE  | FALSE    | TRUE   | FALSE |
    | FALSE    | FALSE  | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | TRUE   | TRUE     | FALSE  | TRUE  |
    | 1        | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
    | 0        | FALSE  | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | TRUE   | FALSE    | TRUE   | TRUE  |
    | -1       | TRUE   | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | FALSE    | FALSE  | FALSE |
    | "1"      | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
    | "0"      | FALSE  | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
    | "-1"     | TRUE   | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | FALSE    | FALSE  | FALSE |
    | NULL     | FALSE  | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | TRUE     | FALSE  | TRUE  |
    | array()  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | TRUE     | FALSE  | FALSE |
    | "php"    | TRUE   | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | TRUE   | FALSE |
    | ""       | FALSE  | TRUE   | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | FALSE    | FALSE  | TRUE  |
    +----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+-------+

Строгие сравнения с ===

+----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+-------+
|          | TRUE   | FALSE  |   1    |   0    |  -1    |  "1"   |  "0"   | "-1"   | NULL   | array()  | "php"  |  ""   |
+----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+-------+
| TRUE     | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| FALSE    | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| 1        | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| 0        | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| -1       | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| "1"      | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| "0"      | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE  | FALSE    | FALSE  | FALSE |
| "-1"     | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | FALSE  | FALSE    | FALSE  | FALSE |
| NULL     | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | TRUE   | FALSE    | FALSE  | FALSE |
| array()  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | TRUE     | FALSE  | FALSE |
| "php"    | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | TRUE   | FALSE |
| ""       | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE  | FALSE    | FALSE  | TRUE  |
+----------+--------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+-------+

Ссылка: http://php.net/manual/en/types.comparisons.php

0

if (isset ($ _ POST ["submit"]) && ($ file_check === False)) {$ file_check = 'ok'; }

Используйте '===' для проверки TRUE или FALSE в strpos()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню