Hướng dẫn what is __ set in php? - __ được đặt trong php là gì?

Các phương thức ma thuật là các phương thức đặc biệt ghi đè hành động mặc định của PHP khi một số hành động được thực hiện trên một đối tượng.

Thận trọng

Tất cả các tên phương thức bắt đầu bằng __ được dành riêng bởi PHP. Do đó, không nên sử dụng các tên phương thức đó trừ khi ghi đè hành vi của PHP.

Các tên phương thức sau được coi là phép thuật: __construct (), __destruct (), __call (), __callstatic (), __get (), __set (), __isset (), __unset (), __s ngủ (), __wakeup () ), __unSerialize (), __ToString (), __invoke (), __set_state (), __clone () và __debuginfo ().

Cảnh báo

Tất cả các phương thức ma thuật, ngoại trừ __construct (), __destruct () và __clone (), phải được khai báo là public, nếu không thì E_WARNING được phát ra. Trước PHP 8.0.0, không có chẩn đoán nào được phát ra cho các phương thức ma thuật __sleep (), __wakeUp (), __serialize (), __unSerialize () và __set_state ().E_WARNING is emitted. Prior to PHP 8.0.0, no diagnostic was emitted for the magic methods __sleep(), __wakeup(), __serialize(), __unserialize(), and __set_state().

Cảnh báo

Tất cả các phương thức ma thuật, ngoại trừ __construct (), __destruct () và __clone (), phải được khai báo là public, nếu không thì E_WARNING được phát ra. Trước PHP 8.0.0, không có chẩn đoán nào được phát ra cho các phương thức ma thuật __sleep (), __wakeUp (), __serialize (), __unSerialize () và __set_state ().

Nếu khai báo loại được sử dụng trong định nghĩa của phương pháp ma thuật, chúng phải giống hệt với chữ ký được mô tả trong tài liệu này. Nếu không, một lỗi nghiêm trọng được phát ra. Trước Php 8.0.0, không có chẩn đoán nào được phát ra. Tuy nhiên, __construct () và __destruct () không được khai báo loại trả lại; Nếu không, một lỗi nghiêm trọng được phát ra.

__s ngủ () và __wakeup () __sleep(): array

public__s ngủ (): mảng __wakeup(): void

public__wakeup (): void checks if the class has a function with the magic name __sleep(). If so, that function is executed prior to any serialization. It can clean up the object and is supposed to return an array with the names of all variables of that object that should be serialized. If the method doesn't return anything then null is serialized and E_NOTICE is issued.

serialize () kiểm tra xem lớp có chức năng với tên ma thuật __s ngủ (). Nếu vậy, chức năng đó được thực thi trước khi có tuần tự hóa. Nó có thể làm sạch đối tượng và được cho là sẽ trả về một mảng với tên của tất cả các biến của đối tượng đó cần được tuần tự hóa. Nếu phương thức không trả về bất cứ điều gì thì null sẽ được tuần tự hóa và E_NOTICE được ban hành.:

Ghi chú:E_NOTICE level error. Use __serialize() instead.

__Sle ngủ () không thể trả lại tên của các thuộc tính riêng trong các lớp cha. Làm điều này sẽ dẫn đến lỗi cấp E_NOTICE. Sử dụng __serialize () thay thế.

Việc sử dụng dự định của __s ngủ () là thực hiện dữ liệu đang chờ xử lý hoặc thực hiện các tác vụ dọn dẹp tương tự. Ngoài ra, chức năng này rất hữu ích nếu một đối tượng rất lớn không cần được lưu hoàn toàn.unserialize() checks for the presence of a function with the magic name __wakeup(). If present, this function can reconstruct any resources that the object may have.

Ngược lại, unserialize () kiểm tra sự hiện diện của một hàm với tên ma thuật __wakeUp (). Nếu có, chức năng này có thể xây dựng lại bất kỳ tài nguyên nào mà đối tượng có thể có.

Việc sử dụng dự định của __wakeUp () là thiết lập lại bất kỳ kết nối cơ sở dữ liệu nào có thể bị mất trong quá trình tuần tự hóa và thực hiện các tác vụ tái tạo khác.

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
0

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
1

Ví dụ #1 giấc ngủ và thức dậy

__Serialize () và __unSerialize () __serialize(): array

public__serialize (): mảng __unserialize(array

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
2): void

public__unSerialize (mảng

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
2): VOID checks if the class has a function with the magic name __serialize(). If so, that function is executed prior to any serialization. It must construct and return an associative array of key/value pairs that represent the serialized form of the object. If no array is returned a TypeError will be thrown.

serialize () kiểm tra xem lớp có chức năng với tên ma thuật __s ngủ (). Nếu vậy, chức năng đó được thực thi trước khi có tuần tự hóa. Nó có thể làm sạch đối tượng và được cho là sẽ trả về một mảng với tên của tất cả các biến của đối tượng đó cần được tuần tự hóa. Nếu phương thức không trả về bất cứ điều gì thì null sẽ được tuần tự hóa và E_NOTICE được ban hành.:

Ghi chú:

__Sle ngủ () không thể trả lại tên của các thuộc tính riêng trong các lớp cha. Làm điều này sẽ dẫn đến lỗi cấp E_NOTICE. Sử dụng __serialize () thay thế.

Việc sử dụng dự định của __s ngủ () là thực hiện dữ liệu đang chờ xử lý hoặc thực hiện các tác vụ dọn dẹp tương tự. Ngoài ra, chức năng này rất hữu ích nếu một đối tượng rất lớn không cần được lưu hoàn toàn.unserialize() checks for the presence of a function with the magic name __unserialize(). If present, this function will be passed the restored array that was returned from __serialize(). It may then restore the properties of the object from that array as appropriate.

serialize () kiểm tra xem lớp có chức năng với tên ma thuật __s ngủ (). Nếu vậy, chức năng đó được thực thi trước khi có tuần tự hóa. Nó có thể làm sạch đối tượng và được cho là sẽ trả về một mảng với tên của tất cả các biến của đối tượng đó cần được tuần tự hóa. Nếu phương thức không trả về bất cứ điều gì thì null sẽ được tuần tự hóa và E_NOTICE được ban hành.:

Ghi chú:

serialize () kiểm tra xem lớp có chức năng với tên ma thuật __s ngủ (). Nếu vậy, chức năng đó được thực thi trước khi có tuần tự hóa. Nó có thể làm sạch đối tượng và được cho là sẽ trả về một mảng với tên của tất cả các biến của đối tượng đó cần được tuần tự hóa. Nếu phương thức không trả về bất cứ điều gì thì null sẽ được tuần tự hóa và E_NOTICE được ban hành.:

Ghi chú:

__Sle ngủ () không thể trả lại tên của các thuộc tính riêng trong các lớp cha. Làm điều này sẽ dẫn đến lỗi cấp E_NOTICE. Sử dụng __serialize () thay thế.

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
5

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
6

__toString()

Việc sử dụng dự định của __s ngủ () là thực hiện dữ liệu đang chờ xử lý hoặc thực hiện các tác vụ dọn dẹp tương tự. Ngoài ra, chức năng này rất hữu ích nếu một đối tượng rất lớn không cần được lưu hoàn toàn. __toString(): string

Ngược lại, unserialize () kiểm tra sự hiện diện của một hàm với tên ma thuật __wakeUp (). Nếu có, chức năng này có thể xây dựng lại bất kỳ tài nguyên nào mà đối tượng có thể có.

Cảnh báo

Tất cả các phương thức ma thuật, ngoại trừ __construct (), __destruct () và __clone (), phải được khai báo là public, nếu không thì E_WARNING được phát ra. Trước PHP 8.0.0, không có chẩn đoán nào được phát ra cho các phương thức ma thuật __sleep (), __wakeUp (), __serialize (), __unSerialize () và __set_state ().string if possible and if strict typing is disabled.

Nếu khai báo loại được sử dụng trong định nghĩa của phương pháp ma thuật, chúng phải giống hệt với chữ ký được mô tả trong tài liệu này. Nếu không, một lỗi nghiêm trọng được phát ra. Trước Php 8.0.0, không có chẩn đoán nào được phát ra. Tuy nhiên, __construct () và __destruct () không được khai báo loại trả lại; Nếu không, một lỗi nghiêm trọng được phát ra.Stringable interface, and will thus pass type checks for that interface. Explicitly implementing the interface anyway is recommended.

__s ngủ () và __wakeup ()string, otherwise an Error is thrown.

public__s ngủ (): mảngstring, otherwise a fatal

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
8 is emitted.

Cảnh báo

Không thể ném một ngoại lệ từ trong một phương thức __tostring () trước PHP 7.4.0. Làm như vậy sẽ dẫn đến một lỗi nghiêm trọng.

Ví dụ #3 Ví dụ đơn giản

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
9

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
5

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
1

Ví dụ trên sẽ xuất ra:

__invoke()

__invoke (

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
2): hỗn hợp(
object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
2
): mixed

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.

Ví dụ #4 sử dụng __invoke ()

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
3

Ví dụ trên sẽ xuất ra:

__invoke (

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
2): hỗn hợp

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
4

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
5

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
6

Ví dụ trên sẽ xuất ra:

Array
(
    [0] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

)
Array
(
    [0] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

)

__set_state()

__invoke (

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
2): hỗn hợp __set_state(array
object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
7
): object

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.var_export().

Ví dụ #4 sử dụng __invoke ()

Ví dụ #5 sử dụng __invoke ()

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
9

__0

__1

Ví dụ trên sẽ xuất ra:

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

__invoke (

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
2): hỗn hợp: When exporting an object, var_export() does not check whether __set_state() is implemented by the object's class, so re-importing objects will result in an Error exception, if __set_state() is not implemented. Particularly, this affects some internal classes. It is the responsibility of the programmer to verify that only objects will be re-imported, whose class implements __set_state().

__debugInfo()

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.(): array

Ví dụ #4 sử dụng __invoke ()var_dump() when dumping an object to get the properties that should be shown. If the method isn't defined on an object, then all public, protected and private properties will be shown.

Ví dụ #5 sử dụng __invoke ()

__2

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
5

__4

Ví dụ trên sẽ xuất ra:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

__invoke (

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
2): hỗn hợp

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.

__5

__6

__7

__8

__9

public0

public1

Ví dụ #4 sử dụng __invoke ()

Ví dụ #5 sử dụng __invoke ()

public2

public3

public4

public5

Static__set_state (Array

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
7): Đối tượng

Phương thức tĩnh này được gọi cho các lớp được xuất bởi var_export ().

public6

public7

public8

public9

Tham số duy nhất của phương pháp này là một mảng chứa các thuộc tính được xuất ở dạng

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
8.

Ví dụ #6 Sử dụng __set_state ()

E_WARNING0

E_WARNING1

E_WARNING2

E_WARNING3

Lưu ý: Khi xuất một đối tượng, var_export () không kiểm tra xem __set_state () có được thực hiện bởi lớp của đối tượng hay không, do đó, việc nhập lại các đối tượng sẽ dẫn đến ngoại lệ lỗi, nếu __set_state () không được triển khai. Đặc biệt, điều này ảnh hưởng đến một số lớp nội bộ. Trách nhiệm của lập trình viên là xác minh rằng chỉ các đối tượng sẽ được thực hiện lại, có lớp thực hiện __set_state ().

__debuginfo (): mảng

E_WARNING4

Phương thức này được gọi bằng var_dump () khi bán một đối tượng để có được các thuộc tính cần được hiển thị. Nếu phương thức không được xác định trên một đối tượng, thì tất cả các thuộc tính công khai, được bảo vệ và riêng tư sẽ được hiển thị.

Ví dụ #7 Sử dụng __debuginfo ()

E_WARNING5

E_WARNING6

E_WARNING7

E_WARNING8

Jon tại Webignition Dot Net

14 năm trước

E_WARNING9

null0

null1

null2

null3

null4

null5

JSNELL tại E-Normous Dot Com ¶

13 năm trước

null6

null7

null8

null9

E_NOTICE0

E_NOTICE1

ctamayo tại sitecraftting dot com

2 năm trước

E_NOTICE2

E_NOTICE3

E_NOTICE4

E_NOTICE5

E_NOTICE6

E_NOTICE7

kguest tại php dot net ¶

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.

E_NOTICE8

E_NOTICE9

E_NOTICE0

E_NOTICE1

E_NOTICE2

E_NOTICE3

Ví dụ #4 sử dụng __invoke ()

Ví dụ #5 sử dụng __invoke ()

E_NOTICE4

E_NOTICE5

E_NOTICE6

E_NOTICE7

public1

Static__set_state (Array

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
7): Đối tượng

__debuginfo (): mảng

E_NOTICE9

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
0

public1

Phương thức này được gọi bằng var_dump () khi bán một đối tượng để có được các thuộc tính cần được hiển thị. Nếu phương thức không được xác định trên một đối tượng, thì tất cả các thuộc tính công khai, được bảo vệ và riêng tư sẽ được hiển thị.

__debuginfo (): mảng

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
2

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
3

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
4

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
5

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
6

Phương thức này được gọi bằng var_dump () khi bán một đối tượng để có được các thuộc tính cần được hiển thị. Nếu phương thức không được xác định trên một đối tượng, thì tất cả các thuộc tính công khai, được bảo vệ và riêng tư sẽ được hiển thị.

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
7

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
8

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
9

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
00

public1

Ví dụ #4 sử dụng __invoke ()

Ví dụ #5 sử dụng __invoke ()

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
02

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
03

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
5

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
05

Static__set_state (Array

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
7): Đối tượng

Ví dụ #5 sử dụng __invoke ()

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
06

Static__set_state (Array

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
7): Đối tượng

__debuginfo (): mảng

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
07

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
08

public1

Phương thức này được gọi bằng var_dump () khi bán một đối tượng để có được các thuộc tính cần được hiển thị. Nếu phương thức không được xác định trên một đối tượng, thì tất cả các thuộc tính công khai, được bảo vệ và riêng tư sẽ được hiển thị.

2 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
10

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
11

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
5

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
13

kguest tại php dot net ¶

5 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
14

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
15

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
16

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
17

jeffxlevy tại gmail dot com

17 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
18

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
19

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
20

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
21

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
22

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
23

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
24

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
25

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
26

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
27

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
28

public1

kguest tại php dot net ¶

5 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
30

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
31

E_NOTICE0

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
33

jeffxlevy tại gmail dot com

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
34

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
35

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
36

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
37

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
38

Ví dụ #4 sử dụng __invoke ()

13 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
39

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
40

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
41

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
42

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
43

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
44

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
25

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
46

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
47

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
48

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
49

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
25

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
51

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
52

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
53

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
54

public1

ctamayo tại sitecraftting dot com

__debuginfo (): mảng

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
56

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
57

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
58

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
59

public1

Phương thức này được gọi bằng var_dump () khi bán một đối tượng để có được các thuộc tính cần được hiển thị. Nếu phương thức không được xác định trên một đối tượng, thì tất cả các thuộc tính công khai, được bảo vệ và riêng tư sẽ được hiển thị.

17 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
61

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
62

E_NOTICE2

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
64

Smiley tại Hellospambot Dot Chillerlan Dot Net

Ví dụ #5 sử dụng __invoke ()

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
65

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
66

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
67

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
68

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
69

public1

Static__set_state (Array

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}
7): Đối tượng

Phương thức tĩnh này được gọi cho các lớp được xuất bởi var_export ().

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
71

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
72

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
5

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
74

kguest tại php dot net ¶

Phương thức __invoke () được gọi khi một tập lệnh cố gắng gọi một đối tượng là một hàm.

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
75

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
76

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
77

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
78

class Connection
{
    protected 
$link;
    private 
$dsn$username$password;
5

Ví dụ #4 sử dụng __invoke ()

Ví dụ #5 sử dụng __invoke ()

5 năm trước

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
81

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
82

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
83

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
84

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}
85

Phương pháp __ __ trong PHP là gì?

__Function__ và __method__ như trong Php 5.0.4 là như vậy. __Function__ chỉ trả về tên của hàm. trong khi __method__ trả về tên của lớp cùng với tên của hàm.returns the name of the class alongwith the name of the function.

Phương pháp đặt trong PHP là gì?

Trong php __set () được sử dụng khi giá trị được gán cho biến không xác định của lớp và __get () được sử dụng khi giá trị từ biến không xác định sẽ được đọc.__Set () được chạy khi ghi dữ liệu vào các thuộc tính không thể truy cập.Phương thức ma thuật __get () đọc dữ liệu từ các thuộc tính không thể truy cập.$ user = new myClass ();

__ cuộc gọi () trong PHP là gì?

Phương thức quá tải ¶ __call () được kích hoạt khi gọi các phương thức không thể truy cập trong bối cảnh đối tượng.__callstatic () được kích hoạt khi gọi các phương thức không thể truy cập trong bối cảnh tĩnh.Đối số $ name là tên của phương thức được gọi.triggered when invoking inaccessible methods in an object context. __callStatic() is triggered when invoking inaccessible methods in a static context. The $name argument is the name of the method being called.

Ý nghĩa đặc biệt của __ giấc ngủ và __ thức dậy là gì?

__Sleep được cho là sẽ trả về một mảng tên của tất cả các biến của một đối tượng cần được tuần tự hóa.Ý định của nó là thiết lập lại các tài nguyên và những thứ khác cần thiết để được khởi tạo khi không xác định. __wakeup in turn will be executed by unserialize if it is present in class. It's intention is to re-establish resources and other things that are needed to be initialized upon unserialization.