Khả năng hiển thị của một thuộc tính, một phương thức hoặc [kể từ Php 7.1.0], một hằng số có thể được xác định bằng cách tiền tố khai báo với các từ khóa public
, protected
hoặc private
. Các thành viên lớp tuyên bố công khai có thể được truy cập ở mọi nơi. Các thành viên tuyên bố được bảo vệ chỉ có thể được truy cập trong chính lớp và bằng cách kế thừa và các lớp cha. Các thành viên được tuyên bố là riêng tư chỉ có thể được truy cập bởi lớp xác định thành viên.
Khả năng hiển thị tài sản
Các thuộc tính lớp có thể được định nghĩa là công khai, riêng tư hoặc được bảo vệ. Các thuộc tính được khai báo mà không có bất kỳ từ khóa hiển thị rõ ràng nào được xác định là công khai.
Ví dụ số 1 khai báo tài sản
Khả năng hiển thị phương pháp
Phương pháp lớp có thể được định nghĩa là công khai, riêng tư hoặc được bảo vệ. Các phương thức được khai báo mà không có bất kỳ từ khóa hiển thị rõ ràng được xác định là công khai.
Ví dụ #2 Tuyên bố Phương pháp
Khả năng hiển thị liên tục
Kể từ Php 7.1.0, các hằng số lớp có thể được định nghĩa là công khai, riêng tư hoặc được bảo vệ. Các hằng số được khai báo mà không có bất kỳ từ khóa hiển thị rõ ràng nào được xác định là công khai.
Ví dụ #3 Tuyên bố liên tục kể từ Php 7.1.0
public
0
public
1
public
2Khả năng hiển thị từ các đối tượng khác
Các đối tượng cùng loại sẽ có quyền truy cập vào nhau các thành viên riêng tư và được bảo vệ mặc dù chúng không phải là cùng một trường hợp. Điều này là do các chi tiết cụ thể thực hiện đã được biết khi bên trong các đối tượng đó.
Ví dụ #4 Truy cập các thành viên riêng của cùng loại đối tượng
public
3
public
1
public
5Ví dụ trên sẽ xuất ra:
string[5] "hello" Accessed the private method.
WBCarts tại Juno Dot Com ¶ ¶
10 năm trước
public
6
public
7
public
8
public
9
protected
0
protected
1
protected
2những gì ở từng chấm com ¶ ¶
13 năm trước
protected
3
protected
4
protected
5
protected
6
protected
7
protected
8
protected
9PGL tại Yoyo Dot org ¶ ¶
7 năm trước
private
0
private
1
private
2
private
3
private
4Stephane tại Harobed Dot org ¶ ¶
16 năm trước
private
5
private
6
private
7
private
8Kostya tại Eltexsoft dot com ¶ ¶
1 năm trước
private
9
0
/** functionprintHello[]
1
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
2
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
3
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
4
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
5
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
6
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
7
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
/** functionprintHello[]
8
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private
* Define MyClass2
*/
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2';
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2'; function
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
9PGL tại Yoyo Dot org ¶ ¶
10 năm trước
0
public function private function class private functionclass MyClass2 extends MyClass
1
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
public function private function class private functionclass MyClass2 extends MyClass
2
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
class MyClass2 extends MyClass
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
} public function
testPublic[] {
echo "Bar::testPublic\n";
} private function
testPrivate[] {
echo "Bar::testPrivate\n";
}
}class
Foo extends Bar
{
public function testPublic[] {
echo "Foo::testPublic\n";
} private function
testPrivate[] {
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
3Stephane tại Harobed Dot org ¶ ¶
16 năm trước
public function private function class private functionclass MyClass2 extends MyClass
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?> 4
public function private function class private functionclass MyClass2 extends MyClass
5
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
public function private function class private functionclass MyClass2 extends MyClass
6
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
class MyClass2 extends MyClass
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
} public function
testPublic[] {
echo "Bar::testPublic\n";
} private function
testPrivate[] {
echo "Bar::testPrivate\n";
}
}class
Foo extends Bar
{
public function testPublic[] {
echo "Foo::testPublic\n";
} private function
testPrivate[] {
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
7Kostya tại Eltexsoft dot com ¶ ¶
9 năm trước
public function private function class private functionclass MyClass2 extends MyClass
8
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
public function private function class private functionclass MyClass2 extends MyClass
9
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
public
00
public
01r dot wilczek tại web-appz dot de ¶ ¶
9 năm trước
public
02
function
8
public
04r dot wilczek tại web-appz dot de ¶ ¶
Tushar Dot Khan0122 tại Gmail Dot Com ¶
public
05
public
06
public
07
public
083 năm trước ¶
16 năm trước
public
09
public function private function class private functionclass MyClass2 extends MyClass
6
{
// This is public
function Foo2[]
{
$this->MyPublic[];
$this->MyProtected[];
$this->MyPrivate[]; // Fatal Error
}
}$myclass2 = new MyClass2;
$myclass2->MyPublic[]; // Works
$myclass2->Foo2[]; // Public and Protected work, not Privateclass Bar
{
public function test[] {
$this->testPrivate[];
$this->testPublic[];
}
echo "Bar::testPublic\n";
}
echo "Bar::testPrivate\n";
}
}
{
public function testPublic[] {
echo "Foo::testPublic\n";
}
echo "Foo::testPrivate\n";
}
}$myFoo = new Foo[];
$myFoo->test[]; // Bar::testPrivate
// Foo::testPublic
?>
public
11Kostya tại Eltexsoft dot com ¶ ¶
16 năm trước
public
12
public
13
public
14
public
15
public
16
public
17
public
18
public
19
public
20
public
21
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2'; function
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
9Kostya tại Eltexsoft dot com ¶ ¶
1 năm trước
public
23
public
24
2
public
36Kostya tại Eltexsoft dot com ¶ ¶
1 năm trước
public
37
public
38
public
39
public
40
public
41
public
42
public
43
public
44
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2'; function
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
9Alexaulbach tại Mayflower Dot de ¶ ¶
7 năm trước
public
46
public
47
public
48
public
49
public
50
public
51
public
52
public
53
public
54
public
55
public
56
public
57
public
58
public
59
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2'; function
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
9Stephane tại Harobed Dot org ¶ ¶
1 năm trước
public
61
public
62
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj = new MyClass[];
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello[]; // Shows Public, Protected and Private/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected properties, but not private
public $public = 'Public2';
protected $protected = 'Protected2'; function
printHello[]
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}$obj2 = new MyClass2[];
echo $obj2->public; // Works
echo $obj2->protected; // Fatal Error
echo $obj2->private; // Undefined
$obj2->printHello[]; // Shows Public2, Protected2, Undefined?>
9