2009-12-10 27 views
6

Tôi là một người mới hoàn toàn với PHP. Nền của tôi là C/C++ và C#. Tôi đang cố gắng để đối tượng orient-ify một số mã PHP đơn giản, nhưng tôi đang làm một cái gì đó sai.Tại sao file_get_contents() trả lại lỗi "Tên tệp không thể trống"?

Mã lớp:

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]; 
    } 
} 

Mã số điện thoại:

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

Tôi nhận được lỗi ann trên dòng file_get_contents($Filename) nêu: Tên tập tin không thể để trống. Nếu tôi mã hóa tên tệp thay vì $ Filename, thì tôi chỉ nhận được tất cả các chuỗi rỗng cho các trường.

Tôi thiếu khái niệm đơn giản nào?

+1

Đây có thể là câu hỏi bằng văn bản tốt nhất với từ "newbie" trong tiêu đề , không bao giờ. +1. –

+1

Không có gì ngạc nhiên khi anh đến từ nền C/C++. – MiseryIndex

Trả lời

12

Bạn đã có những sai trường hợp:

file_get_contents($Filename); 

nên

file_get_contents($FileName); 

Bạn nên bật Mọi thông báo, hoặc trong tập tin php.ini của bạn hoặc sử dụng error_reporting()

+1

Gotta yêu ngôn ngữ động ở đây. –

+0

Wow. Tôi biết đó là điều ngu ngốc. Cảm ơn tất cả mọi người đã giúp đỡ. Tôi thực sự không nhận ra rằng PHP phân biệt chữ hoa chữ thường. Tôi may mắn tôi đã nhận được điều này đến nay. @Greg, cảm ơn mẹo về NOtices và error_reporting(). Tôi không biết họ. –

1

trường hợp Variable -sensitivity:

function LoadFromFile($FileName) 
{ 
    $this->String = file_get_contents($Filename); // This should be $FileName! 
1
$this->String = file_get_contents($FileName); 

bạn có $Filename

3

Biến trong PHP là trường hợp nhạy cảm. Bạn đã xác định $FileName làm tham số cho phương thức LoadFromFile(), nhưng bạn đã sử dụng $Filename trên dòng đầu tiên của phương thức đó. Để biết thêm thông tin về các biến PHP:

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

Có một vài điều bạn có thể làm để tránh vấn đề này trong thời gian tới:

  • Sử dụng một IDE như Eclipse PDT, có hỗ trợ auto hoàn thành các biến.
  • Định cấu hình error_reporting để hiển thị tất cả các loại lỗi (E_ALL).
1
$this->String = file_get_contents($Filename); 

On line này, bạn viết $ tập n ame khi nó nên được $ tập N ame

Các vấn đề liên quan