Я использовал переменные в своем файле php, не объявляя их. Он отлично работал в старой версии localhost (например, vertrigoServ 2.22).

Но когда я переехал на последнюю версию Localhost (I.e Xampp 3.2.1), я столкнулся с переменными объявлениями предупреждения и ошибки что-то вроде этого:

Примечание: неопределенная переменная: att_troops_qty в D: \ Installed Programs \ htdocs \ dashboard \ WarLord \ PHP_Code \ MyAjax.php в строке 1247

Поэтому я объявил все переменные в верхней части PHP-файла, как это:

$page = "";
$att_troops_qty = "";
$def_troops_qty = "";
$ca_level = "";
$b_level = "";
$pre_buildings = "";
$created_pre_b = "";
$building_id = "";
$building_loc = "";
$ca_1_b_loc = "";
$ca_1_b_level = "";
$ca_2_b_loc = "";
$ca_2_b_level = "";

Это решило проблему. Но я не понимаю, что это неправильный способ объявления переменных.

Есть ли более лучший способ для декларации переменных?

2
Rashid 26 Дек 2015 в 13:28

5 ответов

Лучший ответ

Как вы объявляете, совершенно в порядке и правильно.

$test = "";

or

$test = null;

Это оба правильных способа объявления пустых переменных. для получения дополнительной информации посетите http://php.net/manual/en/language. types.null.php

3
SHAZ 26 Дек 2015 в 10:41

Вы не можете использовать необъявленные переменные, но можете объявить их на ходу.

Внутри функций вы можете делать что-то вроде этого:

function abc() {
    return $newVar or null; // without variable declaration
}

Если $ newVar не объявлен до того, как функция вернет null;

Или лучше:

function abc($newVar = null) {
    return $newVar; // with variable declaration
}
1
pawel 26 Дек 2015 в 11:20

Вы можете объявлять переменные в php как

<?php
   $test = "xyz" //for String datatype
   $test1 = 10 //for integer datatype
?>

Имя объявленной переменной должно быть буквенно-цифровым, и вам не нужно указывать тип.

0
2rahulsk 1 Фев 2019 в 11:54

Лучший способ проверить, объявлена ​​ли переменная или нет, - использовать isset () , которая проверяет, задана ли переменная или нет:

<?php
    if(isset($a)){
       // execute when $a is set ( already declare ) or have some value
    }
    else {
      // execute when $a not set
   }
?>
0
SHAZ 26 Дек 2015 в 10:50

Вам необходимо объявить переменные перед их выводом. Пример здесь:

<?php
    $var = "test";
    echo $var; // it will echo out test
?>

И попытка вывести переменную таким образом приведет к ошибке:

<?php
    echo $var; // it will generate error
    $var = "test";
?>

Кроме того, вы можете объявлять переменные в другом файле и включать этот файл, чтобы где-нибудь отобразить переменную. Не забудьте сначала включить файл, а затем вызвать его.

Пример vars.php :

<?php
    // define vars
    $var1 = "Test 1";
    $var2 = "Test 2";
?>

Теперь в другом файле сначала include vars.php , а затем вызовите переменную:

<?php
    require_once"vars.php";
    echo $var1;
?>
2
Rehmat 26 Дек 2015 в 10:44