我在我的php文件中使用变量而没有声明它们。它在旧版本的localhost(即vertrigoServ 2.22)中运行良好。
但是当我转移到localhost的最新版本(即xampp 3.2.1)时,我遇到了变量声明警告和错误,如下所示:
注意:未定义的变量:D:\ Installed中的att_troops_qty 1247行上的Programs \ htdocs \ dashboard \ WarLord \ PHP_Code \ MyAjax.php
所以我在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 = "";
它解决了问题但我感到困惑的是,这不是声明变量的正确方法。
是否有更好的变量声明方法?
答案 0 :(得分:2)
您需要在回显之前声明变量。这里有一个例子:
<?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;
?>
答案 1 :(得分:2)
你如何宣告是完全正确和正确的方式。
$test = "";
or
$test = null;
这两者都是声明空变量的正确方法。 有关详细信息,请访问http://php.net/manual/en/language.types.null.php
答案 2 :(得分:0)
检查变量是否声明的最佳方法是使用 isset() 函数,该函数检查变量是否为设置像:
<?php
if(isset($a)){
// execute when $a is set ( already declare ) or have some value
}
else {
// execute when $a not set
}
?>
答案 3 :(得分:0)
你不能使用未声明的变量 你可以随时申报。
内部功能你可以这样做:
function abc() {
return $newVar or null; // without variable declaration
}
如果在函数返回null之前未声明$ newVar,则
或更好的方式:
function abc($newVar = null) {
return $newVar; // with variable declaration
}
答案 4 :(得分:0)
您可以在php中将变量声明为
<?php
$test = "xyz" //for String datatype
$test1 = 10 //for integer datatype
?>
声明的变量的名称必须为字母数字,并且无需指定类型。