Tôi nhận được thông báo lỗi "biến Không xác định: khoảng thời gian trong C: \ wamp \ www \ DGC \ Classes \ DateFilter.php"PHP - biến lớp học cá nhân đưa ra lỗi: không xác định biến
Đây là mã của tôi cho DateFilter lớp học:
class DateFilter extends Filter
{
//@param daysOld: how many days can be passed to be included in filter
//Ex. If daysOld = 7, everything that is less than a week old is included
private $interval;
public function DateFilter($daysOld)
{
echo 'days old' . $daysOld .'</ br>';
$interval = new DateInterval('P'.$daysOld.'D');
}
function test()
{
echo $interval->format("%d days old </br>");
//echo 'bla';
}
}
Khi tôi tạo một phiên bản mới của lớp DateFilter và kiểm tra cuộc gọi() nó cho tôi lỗi. Tôi nhận ra nó có nghĩa là biến không được khởi tạo, nhưng tôi biết rằng hàm tạo đang được gọi bởi vì tôi đặt một câu lệnh echo trong đó và nó là đầu ra.
Tôi cũng đã thử: $ this :: $ interval-> format (...); self :: $ interval-> format (...); nhưng không hoạt động.
Tôi biết đây có lẽ là một cách khắc phục dễ dàng, xin lỗi vì câu hỏi noob. Không thể tin rằng điều này làm tôi bối rối.
echo $ this -> $ interval-> format ("% d days old"); Cũng đang cho tôi lỗi này:/ – CHawk
xóa ký hiệu đô la thứ hai. Đó là $ this-> interval –
Tôi luôn tìm thấy khá "lạ" khi PHP buộc bạn sử dụng '$ this' để truy cập các trường đối tượng. Nhiều ngôn ngữ khác như C# sẽ không (nếu biến không trùng tên với địa phương). Dù sao thì việc sử dụng 'điều này' luôn là một thực hành tốt, IMHO: nó giúp bạn xem nhanh các thuộc tính của đối tượng và tránh nhầm lẫn với các biến cục bộ. – gremo