【问题标题】:What is the proper way to declare variables in php?在php中声明变量的正确方法是什么?
【发布时间】:2016-03-31 22:36:45
【问题描述】:

我在我的 php 文件中使用了变量而没有声明它们。它在旧版本的 localhost(即 vertrigoServ 2.22)中运行良好。

但是当我迁移到最新版本的 localhost(即 xampp 3.2.1)时,我遇到了类似这样的变量声明警告和错误:

注意:未定义变量:D:\Installed 中的 att_troops_qty 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 = "";

它解决了问题但我很困惑,这不是声明变量的正确方法。

有没有更好的变量声明方式?

【问题讨论】:

    标签: php


    【解决方案1】:

    您的声明方式完全正确且正确。

    $test = "";
    
    or
    
    $test = null;
    

    这些都是声明空变量的正确方法。 欲了解更多信息,请访问http://php.net/manual/en/language.types.null.php

    【讨论】:

      【解决方案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;
      ?>
      

      【讨论】:

        【解决方案3】:

        您不能使用未声明的变量,但 您可以随时随地声明它们。

        在函数内部你可以做这样的事情:

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

        如果在函数之前没有声明$newVar,则返回null;

        或者更好的方法:

        function abc($newVar = null) {
            return $newVar; // with variable declaration
        }
        

        【讨论】:

          【解决方案4】:

          检查变量是否声明的最好方法是使用 isset() 函数,该函数检查变量是否设置,如下所示:

          <?php
              if(isset($a)){
                 // execute when $a is set ( already declare ) or have some value
              }
              else {
                // execute when $a not set
             }
          ?>
          

          【讨论】:

            【解决方案5】:

            你可以在php中声明变量为

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

            声明的变量的名称必须是字母数字,您不需要指定类型。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-03-05
              • 1970-01-01
              • 2012-06-17
              • 2021-06-28
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多