Có thể trùng lặp: Hàm __Construct được sử dụng để làm gì?
what is the function __construct used for?
Có bất kỳ sự khác biệt nào giữa hàm __construct và chức năng có cùng tên với lớp có không?
class foo {
function foo [$something]{
echo "I see ".$something." argument";
}
}
class bar {
function __construct [$something]{
echo "
I see ".$something." argument again";
}
}
$foo = new foo["foo"];
$bar = new bar["bar"];
hỏi ngày 29 tháng 7 năm 2011 lúc 12:16Jul 29, 2011 at 12:16
2
Phương pháp có tên là cách thực hiện một hàm tạo PHP4.
Đối với khả năng tương thích ngược, nếu PHP 5 không thể tìm thấy hàm __construct [] cho một lớp nhất định, nó sẽ tìm kiếm chức năng cấu trúc kiểu cũ, theo tên của lớp. Thực tế, điều đó có nghĩa là trường hợp duy nhất có vấn đề tương thích là nếu lớp có phương thức có tên __construct [] được sử dụng cho các ngữ nghĩa khác nhau.old-style constructor function, by the name of the class. Effectively, it means that the only case that would have compatibility issues is if the class had a method named __construct[] which was used for different semantics.
Kể từ Php 5.3.3, các phương thức có cùng tên với phần tử cuối cùng của tên lớp theo tên sẽ không còn được coi là hàm tạo. Thay đổi này không ảnh hưởng đến các lớp không có tên. This change doesn't affect non-namespaced classes.
//www.php.net/manual/en/language.oop5.decon.php
Đã trả lời ngày 29 tháng 7 năm 2011 lúc 12:18Jul 29, 2011 at 12:18
DamiendamienDamien
5,8292 Huy hiệu vàng28 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges28 silver badges35 bronze badges
4
Hàm Constructor có tên giống như lớp là tính năng tương thích ngược cho PHP4. Nó sẽ không hoạt động với các lớp học theo tên kể từ Php 5.3.3
Nếu cả hai hàm __construct
và class-named
đều có mặt, thì __construct
được sử dụng làm hàm tạo.
Đã trả lời ngày 29 tháng 7 năm 2011 lúc 12:19Jul 29, 2011 at 12:19
MchlmchlMchl
60,6K9 Huy hiệu vàng114 Huy hiệu bạc119 Huy hiệu đồng9 gold badges114 silver badges119 bronze badges
Cái đầu tiên là "Cấu trúc" kiểu PHP4 cũ. Nó về cơ bản giống như __construct
.
Đã trả lời ngày 29 tháng 7 năm 2011 lúc 12:19Jul 29, 2011 at 12:19
Mchlmchlshaggy
60,6K9 Huy hiệu vàng114 Huy hiệu bạc119 Huy hiệu đồng2 gold badges15 silver badges15 bronze badges
Cái đầu tiên là "Cấu trúc" kiểu PHP4 cũ. Nó về cơ bản giống như __construct
.
Đã trả lời ngày 29 tháng 7 năm 2011 lúc 12:18Jul 29, 2011 at 12:18
DamiendamienTJHeuvel
5,8292 Huy hiệu vàng28 Huy hiệu bạc35 Huy hiệu Đồng3 gold badges37 silver badges46 bronze badges
3
Hàm Constructor có tên giống như lớp là tính năng tương thích ngược cho PHP4. Nó sẽ không hoạt động với các lớp học theo tên kể từ Php 5.3.3
Đã trả lời ngày 29 tháng 7 năm 2011 lúc 12:18Jul 29, 2011 at 12:18
DamiendamienMichael J.V.
5,8292 Huy hiệu vàng28 Huy hiệu bạc35 Huy hiệu Đồng1 gold badge19 silver badges16 bronze badges
0
Người xây dựng
__construct [hỗn hợp ...$values
= ""]: VOID[mixed ...$values
= ""]: void
PHP cho phép các nhà phát triển khai báo các phương thức xây dựng cho các lớp. Các lớp có phương thức xây dựng gọi phương thức này trên mỗi đối tượng mới được tạo, do đó, nó phù hợp với bất kỳ khởi tạo nào mà đối tượng có thể cần trước khi nó được sử dụng.
Lưu ý: Các hàm tạo cha mẹ không được gọi là ngầm nếu lớp con định nghĩa một hàm tạo. Để chạy một hàm tạo cha mẹ, một cuộc gọi đến cha mẹ :: __ construct [] trong hàm tạo con là bắt buộc. Nếu trẻ không định nghĩa một hàm tạo thì nó có thể được kế thừa từ lớp cha giống như một phương thức lớp bình thường [nếu nó không được tuyên bố là riêng tư].: Parent constructors are not called implicitly if the child class defines a constructor. In order to run a parent constructor, a call to parent::__construct[] within the child constructor is required. If the child does not define a constructor then it may be inherited from the parent class just like a normal class method [if it was not declared as private].
Ví dụ số 1 người xây dựng trong kế thừa
2
classSubClass extends BaseClass {
3
function __construct[] {
parent::__construct[];
print "In SubClass constructor\n";
}
}
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
classSubClass extends BaseClass {
4
function __construct[] {
parent::__construct[];
print "In SubClass constructor\n";
}
}
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
__construct
8ziggy khi bắt đầu chấm bụi ¶ ¶
1 tháng trước
classSubClass extends BaseClass {
6
function __construct[] {
parent::__construct[];
print "In SubClass constructor\n";
}
}
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
classSubClass extends BaseClass {
7
function __construct[] {
parent::__construct[];
print "In SubClass constructor\n";
}
}
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
classSubClass extends BaseClass {
8
function __construct[] {
parent::__construct[];
print "In SubClass constructor\n";
}
}
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
classSubClass extends BaseClass {
9
function __construct[] {
parent::__construct[];
print "In SubClass constructor\n";
}
}
// inherits BaseClass's constructor
}// In BaseClass constructor
$obj = new BaseClass[];// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass[];// In BaseClass constructor
$obj = new OtherSubClass[];
?>
__construct
00Reza Mahjourian ¶ ¶
16 năm trước
__construct
01
__construct
02
__construct
03
__construct
04
__construct
05
__construct
06
__construct
07
__construct
08
__construct
8