2012-03-04 29 views
7

vì vậy trong php, bạn không xác định trường trong một lớp đầu tiên như java, đúng không ??php thêm trường khi đang di chuyển mà không cần định nghĩa chúng đầu tiên

trong java bạn không thể nói

public class javac { 
    int x; 
    int y; 
    public javaC() { 
    this.z = 3; 
    } 
} 

nhưng trong php bạn có thể nói thế?

class phpC { 
$x; 
$y; 

public phpC() { 
    $this->z = "omg"; 
} 
    } 

Tài liệu về php này là gì? và những gì là thuật ngữ chính xác cho hành vi như vậy, tôi không nghĩ rằng nó được gọi là thêm lĩnh vực trên bay

Trả lời

6

Bạn là chính xác .. Bạn có thể gán một giá trị cho một tài sản chưa được khởi tạo trong PHP. Java là nghiêm ngặt và PHP là ngớ ngẩn ngớ ngẩn :)

Tên kỹ thuật cho điều này là "quá tải". Đây là tài liệu: http://php.net/manual/en/language.oop5.overloading.php

+2

+1 Tôi sẽ thêm rằng chỉ vì bạn không yêu cầu *** để khởi tạo thuộc tính không có nghĩa là đó không phải là ý tưởng hay. – rdlowrey

+0

Tôi không thể đồng ý nhiều hơn trừ trường hợp bạn đang thiết lập một lớp giao diện. –

+1

* "một lớp giao diện" * ... từ ngữ của bạn hơi khó hiểu ... một Giao diện thực tế không thể chứa biến thành viên và sẽ tạo ra lỗi E_FATAL nếu bạn thử. Xin lỗi vì đã làm phiền bạn về nó ... câu trả lời là tốt :) – rdlowrey

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