Tôi đã tự hỏi nếu một thuộc tính lớp được khởi tạo và chỉ được sử dụng trong một phương thức lớp, nó có phải là một thuộc tính lớp hay không hoặc nó chỉ là một biến cục bộ có thể truy cập vào phương thức lớp đó?Tôi có nên giữ các biến chỉ được sử dụng trong một phương thức lớp cục bộ hoặc khai báo chúng dưới dạng thuộc tính lớp không?
Ví dụ, tôi có nên giữ một biến chỉ được sử dụng trong một phương pháp như là một biến địa phương như thế này:
class myClass
{
public function myMethod()
{
$_myVariableUsedOnlyOnce = "Hello World";
echo $_myVariableUsedOnlyOnce;
}
}
Hoặc tôi nên làm cho biến một tài sản lớp tin như thế này:
class myClass
{
private $_myVariableUsedOnlyOnce;
public function myMethod()
{
$this->_myVariableUsedOnlyOnce = "Hello World";
echo $this->_myVariableUsedOnlyOnce;
}
}
Cách tiếp cận nào "có mùi"? Những lợi ích để làm cho tất cả các biến phương thức thuộc tính lớp khác hơn khi tôi cần print_r() toàn bộ đối tượng cho mục đích gỡ lỗi là gì?
Cảm ơn
Nếu bạn chắc chắn, nó sẽ chỉ được sử dụng một lần, đặt địa phương vào phương pháp. Nếu không, bạn chính xác đặt nó ở chế độ riêng tư. _Unless_ bạn cần giá trị của biến đó để tồn tại giữa các cuộc gọi của phương thức đó, trong đó ít nhất nó cần phải là 'static' trong phương thức. –