代码之家  ›  专栏  ›  技术社区  ›  John Kraft

为什么file_get_contents()返回错误“Filename不能为空”?

php
  •  6
  • John Kraft  · 技术社区  · 16 年前

    我基本上是PHP的新手。我的背景是C/C++和C#。我试图用一些简单的PHP代码来面向对象,但我做错了什么。

    类别代码:

    class ConnectionString
    {
      public $String = "";
      public $HostName = "";
      public $UserName = "";
      public $Password = "";
      public $Database = "";
    
      function LoadFromFile($FileName)
      {
        $this->String = file_get_contents($Filename);
        $Values = explode("|", $this->String);
        $this->HostName = $Values[0];
        $this->UserName = $Values[1];
        $this->Password = $Values[2];
        $this->Database = $Values[3];
      }
    }
    

    呼叫代码:

    $ConnectionString = new ConnectionString();
    $FileName = "db.conf";
    $ConnectionString->LoadFromFile($FileName);
    print('<p>Connection Info: ' . $Connection->String . '</p>');
    

    我在电话里听到了安的错误 file_get_contents($Filename) 行说明: . 如果我硬编码文件名而不是$filename,那么我只会得到字段的所有空字符串。

    我遗漏了什么简单的概念?

    5 回复  |  直到 14 年前
        1
  •  12
  •   Greg    16 年前

    file_get_contents($Filename);
    

    应该是

    file_get_contents($FileName);
    

    您应该在php.ini文件中或使用 error_reporting()

        2
  •  3
  •   Jordan Ryan Moore    16 年前

    PHP中的变量区分大小写。你已经定义了 $FileName 作为 LoadFromFile() 方法,但您使用 $Filename 在该方法的第一行。有关PHP变量的更多信息:

    http://www.php.net/manual/en/language.variables.basics.php

    您可以做一些事情来避免将来出现此问题:

        3
  •  1
  •   PatrikAkerstrand    16 年前

    可变区分大小写:

    function LoadFromFile($FileName)
    {
       $this->String = file_get_contents($Filename); // This should be $FileName!
    
        4
  •  1
  •   Galen    16 年前
    $this->String = file_get_contents($FileName);
    

    $Filename

        5
  •  1
  •   THE DOCTOR    16 年前
     $this->String = file_get_contents($Filename);
    

    在这一行中,您将写入$File N 阿美

    推荐文章