Home > php教程 > php手册 > The second magic method in the object-oriented series of front-end learning PHP

The second magic method in the object-oriented series of front-end learning PHP

WBOY
Release: 2016-11-16 10:24:05
Original
1289 people have browsed it
×
Table of Contents
[1] Construction method [2] Destruction method [3] Inaccessible properties [4] Object copy [5] String [6] Object does not exist [7] Automatic loading of classes [8] Serialization [9] Function call

Previous words

  PHP has many related magic methods in the object-oriented part. These methods provide convenience for object-oriented implementation. This article will introduce the magic methods in detail

Construction method

 Most classes have a special method called a constructor. When an object is created, it will automatically call the constructor, which is usually used to perform some useful initialization tasks

 The declaration of a constructor is the same as the declaration of other operations, except that its name must be two underscores __construct(). This is a change in PHP5; in the PHP4 version, the name of the constructor must be the same as the class name. For backward compatibility, if there is no method named __construct() in a class, PHP will search for a method with the same name as the class

void __construct ([ <span style="color: #0000ff;">mixed</span> <span style="color: #800080;">$args</span> [, $... ]] )
Copy after login

 If a constructor is defined in a subclass, the constructor of its parent class will not be implicitly called. To execute the parent class's constructor, you need to call parent::__construct() in the child class's constructor. If the subclass does not define a constructor, it will be inherited from the parent class like a normal class method (if it is not defined as private)

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> BaseClass {
   </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct() {
       </span><span style="color: #0000ff;">print</span> "In BaseClass constructor\n"<span style="color: #000000;">;
   }
}
</span><span style="color: #0000ff;">class</span> SubClass <span style="color: #0000ff;">extends</span><span style="color: #000000;"> BaseClass {
   </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct() {
       parent</span>::<span style="color: #000000;">__construct();
       </span><span style="color: #0000ff;">print</span> "In SubClass constructor\n"<span style="color: #000000;">;
   }
}
</span><span style="color: #0000ff;">class</span> OtherSubClass <span style="color: #0000ff;">extends</span><span style="color: #000000;"> BaseClass {
}
</span><span style="color: #008000;">//</span><span style="color: #008000;"> In BaseClass constructor</span>
<span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> BaseClass();

</span><span style="color: #008000;">//</span><span style="color: #008000;"> In BaseClass constructor
// In SubClass constructor</span>
<span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> SubClass();

</span><span style="color: #008000;">//</span><span style="color: #008000;"> In BaseClass constructor</span>
<span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> OtherSubClass();
</span>?>
Copy after login

Destruction method

 The opposite of the construction method is the destruction method. The destructor method is a newly added content of PHP5. There is no destructor method in PHP4. The destructor method is a method that is automatically called before the object is destroyed. It mainly performs some specific operations, such as closing files, releasing result sets, etc.

 Similar to the constructor method, the destructor method name of a class must be two underscores _ _destruct(). Destructor cannot take any parameters

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> MyDestructableClass {
   </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> __construct() {
       </span><span style="color: #0000ff;">print</span> "In constructor\n"<span style="color: #000000;">;
       </span><span style="color: #800080;">$this</span>->name = "MyDestructableClass"<span style="color: #000000;">;
   }
   </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> __destruct() {
       </span><span style="color: #0000ff;">print</span> "Destroying " . <span style="color: #800080;">$this</span>->name . "\n"<span style="color: #000000;">;
   }
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">In constructor Destroying MyDestructableClass</span>
<span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MyDestructableClass();
</span>?>
Copy after login

Inaccessible property

get()

When reading inaccessible attributes (protected, private), __get() will be called, and the attribute name will be passed into this method as the first parameter (string)

<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">mixed</span> __get ( <span style="color: #0000ff;">string</span> <span style="color: #800080;">$name</span> )
Copy after login
<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> demo{
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$protected</span> = 1<span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$public</span> = 2<span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$private</span> = 3<span style="color: #000000;">;
    </span><span style="color: #0000ff;">function</span> __get(<span style="color: #800080;">$name</span><span style="color: #000000;">){
        </span><span style="color: #0000ff;">echo</span> "111{<span style="color: #800080;">$name</span>}111<br>"<span style="color: #000000;">;
    }
}
</span><span style="color: #800080;">$d1</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> demo;
</span><span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">protected</span>;<span style="color: #008000;">//</span><span style="color: #008000;">111protected111</span>
<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">public</span><span style="color: #000000;">;
</span><span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">private</span>;<span style="color: #008000;">//</span><span style="color: #008000;">111private111</span>
?>
Copy after login

set()

When assigning a value to an inaccessible attribute (protected, private), __set() will be called, and the attribute name will be passed into this method as the first parameter (string) and the value as the second parameter (mixed)

<span style="color: #0000ff;">public</span> void __set ( <span style="color: #0000ff;">string</span> <span style="color: #800080;">$name</span> , <span style="color: #0000ff;">mixed</span> <span style="color: #800080;">$value</span> )
Copy after login
<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> demo{
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$protected</span> = 1<span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$public</span> = 2<span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$private</span> = 3<span style="color: #000000;">;
    </span><span style="color: #0000ff;">function</span> __set(<span style="color: #800080;">$name</span>,<span style="color: #800080;">$value</span><span style="color: #000000;">){
        </span><span style="color: #0000ff;">echo</span> "0{<span style="color: #800080;">$name</span>}0{<span style="color: #800080;">$value</span>}<br>"<span style="color: #000000;">;
    }
}
</span><span style="color: #800080;">$d1</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> demo;
</span><span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">protected</span> = '1';<span style="color: #008000;">//</span><span style="color: #008000;">0protected01</span>
<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">public</span> = '2'<span style="color: #000000;">;
</span><span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">private</span> = '3';<span style="color: #008000;">//</span><span style="color: #008000;">0private03</span>
?>
Copy after login

isset()

 When isset() or empty() is called on inaccessible properties (protected, private), __isset() will be called

<span style="color: #0000ff;">public</span> bool __isset ( <span style="color: #0000ff;">string</span> <span style="color: #800080;">$name</span> )
Copy after login
<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> demo{
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$protected</span> = 1<span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$public</span> = 2<span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$private</span> = 3<span style="color: #000000;">;
    </span><span style="color: #0000ff;">function</span> __isset(<span style="color: #800080;">$name</span><span style="color: #000000;">){
        </span><span style="color: #0000ff;">echo</span> "0{<span style="color: #800080;">$name</span>}0<br>"<span style="color: #000000;">;
    }
}
</span><span style="color: #800080;">$d1</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> demo;
</span><span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">protected</span>);<span style="color: #008000;">//</span><span style="color: #008000;">0protected0</span>
<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">public</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">private</span>);<span style="color: #008000;">//</span><span style="color: #008000;">0private0</span>
?>
Copy after login

unset()

 When unset() is called on inaccessible properties (protected, private), __unset() will be called

<span style="color: #0000ff;">public</span> void __unset ( <span style="color: #0000ff;">string</span> <span style="color: #800080;">$name</span> )
Copy after login
<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> demo{
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$protected</span> = 1<span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$public</span> = 2<span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$private</span> = 3<span style="color: #000000;">;
    </span><span style="color: #0000ff;">function</span> __unset(<span style="color: #800080;">$name</span><span style="color: #000000;">){
        </span><span style="color: #0000ff;">echo</span> "0{<span style="color: #800080;">$name</span>}0<br>"<span style="color: #000000;">;
    }
}
</span><span style="color: #800080;">$d1</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> demo;
</span><span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">protected</span>);<span style="color: #008000;">//</span><span style="color: #008000;">0protected0</span>
<span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">public</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$d1</span>-><span style="color: #0000ff;">private</span>);<span style="color: #008000;">//</span><span style="color: #008000;">0private0</span>
?>
Copy after login

Object copy

clone()

 The clone() method is automatically called when an object is cloned. This method does not require any parameters. You can use this method to reinitialize the cloned copy

 The clone() method will automatically include references to two objects, this and that. This is a reference to the copy object, and that is a reference to the original object

<?<span style="color: #000000;">php
    </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Person{
        </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$name</span><span style="color: #000000;">;
        </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$sex</span><span style="color: #000000;">;
        </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$age</span><span style="color: #000000;">;
        </span><span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$name</span>="",<span style="color: #800080;">$sex</span>="",<span style="color: #800080;">$age</span>=1<span style="color: #000000;">){
            </span><span style="color: #800080;">$this</span>->name= <span style="color: #800080;">$name</span><span style="color: #000000;">;
            </span><span style="color: #800080;">$this</span>->sex = <span style="color: #800080;">$sex</span><span style="color: #000000;">;
            </span><span style="color: #800080;">$this</span>->age = <span style="color: #800080;">$age</span><span style="color: #000000;">;
        }
        </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> __clone(){
            </span><span style="color: #800080;">$this</span>->name = <span style="color: #800080;">$this</span>->name."的副本"<span style="color: #000000;">;
        }
        </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> say(){
            </span><span style="color: #0000ff;">echo</span> "我的名字:" .<span style="color: #800080;">$this</span>->name.",性别:".<span style="color: #800080;">$this</span>->sex.",年龄:".<span style="color: #800080;">$this</span>->age."<br>"<span style="color: #000000;">;
        }
    }
    </span><span style="color: #800080;">$p1</span> = <span style="color: #0000ff;">new</span> Person('张三','男','20'<span style="color: #000000;">);
    </span><span style="color: #800080;">$p2</span> = <span style="color: #0000ff;">clone</span> <span style="color: #800080;">$p1</span><span style="color: #000000;">;
    </span><span style="color: #800080;">$p1</span>->say();<span style="color: #008000;">//</span><span style="color: #008000;">我的名字:张三,性别:男,年龄:20</span>
    <span style="color: #800080;">$p2</span>->say();<span style="color: #008000;">//</span><span style="color: #008000;">我的名字:张三的副本,性别:男,年龄:20</span>
?>
Copy after login

String

toString()

 The __toString() method is used to determine how a class should respond when it is treated as a string. It is the most convenient way to quickly obtain the string representation of an object. It is a method that is automatically called when directly outputting an object reference

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> TestClass
{
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$foo</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$foo</span><span style="color: #000000;">) 
    {
        </span><span style="color: #800080;">$this</span>->foo = <span style="color: #800080;">$foo</span><span style="color: #000000;">;
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __toString() {
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">foo;
    }
}
</span><span style="color: #800080;">$class</span> = <span style="color: #0000ff;">new</span> TestClass('Hello'<span style="color: #000000;">);
</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$class</span>;<span style="color: #008000;">//</span><span style="color: #008000;">Hello</span>
?>
Copy after login

Object does not exist

call()

 When an inaccessible method is called in an object, __call() will be called

callStatic()

 When calling an inaccessible method in a static context, __callStatic() will be called

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> MethodTest 
{
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __call(<span style="color: #800080;">$name</span>, <span style="color: #800080;">$arguments</span><span style="color: #000000;">) 
    {
        </span><span style="color: #0000ff;">echo</span> "Calling object method '<span style="color: #800080;">$name</span>' "
             . <span style="color: #008080;">implode</span>(', ', <span style="color: #800080;">$arguments</span>). "\n"<span style="color: #000000;">;
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> __callStatic(<span style="color: #800080;">$name</span>, <span style="color: #800080;">$arguments</span><span style="color: #000000;">) 
    {
        </span><span style="color: #0000ff;">echo</span> "Calling static method '<span style="color: #800080;">$name</span>' "
             . <span style="color: #008080;">implode</span>(', ', <span style="color: #800080;">$arguments</span>). "\n"<span style="color: #000000;">;
    }
}
</span><span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MethodTest;
</span><span style="color: #008000;">//</span><span style="color: #008000;">Calling object method 'runTest' in object context</span>
<span style="color: #800080;">$obj</span>->runTest('in object context'<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">Calling static method 'runTest' in static context</span>
MethodTest::runTest('in static context'<span style="color: #000000;">);  
</span>?>
Copy after login

Automatic loading of classes

autoload()

 In PHP5, you can define an __autoload() function, which will be automatically called when trying to use a class that has not yet been defined. By calling this function, the script engine has a last chance to load the required classes before PHP fails with an error

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">function</span> __autoload(<span style="color: #800080;">$class_name</span><span style="color: #000000;">) {
    </span><span style="color: #0000ff;">require_once</span> <span style="color: #800080;">$class_name</span> . '.php'<span style="color: #000000;">;
}

</span><span style="color: #800080;">$obj</span>  = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MyClass1();
</span><span style="color: #800080;">$obj2</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> MyClass2();
</span>?>
Copy after login

 

串行化

sleep()

  在调用serialize()函数将对象串行化时,检查类中是否存在一个魔术方法 __sleep()。如果存在,该方法会先被调用,然后才执行序列化操作。此功能可以用于清理对象,并返回一个包含对象中所有应被序列化的变量名称的数组。如果该方法未返回任何内容,则 NULL 被序列化,并产生一个 E_NOTICE 级别的错误

  __sleep()函数不需要接受任何参数,但需要返回一个数组,在数组中包含需要串行化的属性。未被包含在数组中的属性将在串行化时被忽略。如果没有在类中声明__sleep()方法,对象中的所有属性都将被串行化

wakeup()

  在调用unserialize()函数将对象反串行化对象时,则会自动调用对象中的__wakeup()方法,用来在二进制串重新组成一个对象时,为新对象中的成员属性重新初始化

  wakeup()经常用在反序列化操作中,例如重新建立数据库连接,或执行其它初始化操作

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Connection 
{
    </span><span style="color: #0000ff;">protected</span> <span style="color: #800080;">$link</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$server</span>, <span style="color: #800080;">$username</span>, <span style="color: #800080;">$password</span>, <span style="color: #800080;">$db</span><span style="color: #000000;">;  
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$server</span>, <span style="color: #800080;">$username</span>, <span style="color: #800080;">$password</span>, <span style="color: #800080;">$db</span><span style="color: #000000;">)
    {
        </span><span style="color: #800080;">$this</span>->server = <span style="color: #800080;">$server</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>->username = <span style="color: #800080;">$username</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>->password = <span style="color: #800080;">$password</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>->db = <span style="color: #800080;">$db</span><span style="color: #000000;">;
        </span><span style="color: #800080;">$this</span>-><span style="color: #000000;">connect();
    }
    </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> connect()
    {
        </span><span style="color: #800080;">$this</span>->link = <span style="color: #008080;">mysql_connect</span>(<span style="color: #800080;">$this</span>->server, <span style="color: #800080;">$this</span>->username, <span style="color: #800080;">$this</span>-><span style="color: #000000;">password);
        </span><span style="color: #008080;">mysql_select_db</span>(<span style="color: #800080;">$this</span>->db, <span style="color: #800080;">$this</span>-><span style="color: #000000;">link);
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __sleep()
    {
        </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">array</span>('server', 'username', 'password', 'db'<span style="color: #000000;">);
    }
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> __wakeup()
    {
        </span><span style="color: #800080;">$this</span>-><span style="color: #000000;">connect();
    }
}
</span>?>
Copy after login

 

函数调用

invoke()

  当尝试以调用函数的方式调用一个对象时,__invoke()方法会被自动调用

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> CallableClass 
{
    </span><span style="color: #0000ff;">function</span> __invoke(<span style="color: #800080;">$x</span><span style="color: #000000;">) {
        </span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$x</span><span style="color: #000000;">);
    }
}
</span><span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> CallableClass;
</span><span style="color: #800080;">$obj</span>(5);<span style="color: #008000;">//</span><span style="color: #008000;">int(5)</span>
<span style="color: #008080;">var_dump</span>(<span style="color: #008080;">is_callable</span>(<span style="color: #800080;">$obj</span>));<span style="color: #008000;">//</span><span style="color: #008000;">bool(true)</span>
?>
Copy after login

【补充】

set_state()

  当调用var_export()导出类时,set_state()方法会被调用,本方法的唯一参数是一个数组,其中包含按 array('property' => value, ...) 格式排列的类属性

  [注意]var_export()返回关于传递给该函数的变量的结构信息,它和var_dump()类似,不同的是其返回的表示是合法的PHP代码,也就是说,var_export返回的代码,可以直接当作php代码赋给一个变量。 而这个变量就会取得和被var_export一样的类型的值

<?<span style="color: #000000;">php
</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> A
{
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$var1</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$var2</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> __set_state(<span style="color: #800080;">$an_array</span><span style="color: #000000;">) 
    {
        </span><span style="color: #800080;">$obj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> A;
        </span><span style="color: #800080;">$obj</span>->var1 = <span style="color: #800080;">$an_array</span>['var1'<span style="color: #000000;">];
        </span><span style="color: #800080;">$obj</span>->var2 = <span style="color: #800080;">$an_array</span>['var2'<span style="color: #000000;">];
        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$obj</span><span style="color: #000000;">;
    }
}
</span><span style="color: #800080;">$a</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> A;
</span><span style="color: #800080;">$a</span>->var1 = 5<span style="color: #000000;">;
</span><span style="color: #800080;">$a</span>->var2 = 'foo'<span style="color: #000000;">;
</span><span style="color: #0000ff;">eval</span>('$b = ' . <span style="color: #008080;">var_export</span>(<span style="color: #800080;">$a</span>, <span style="color: #0000ff;">true</span>) . ';'<span style="color: #000000;">); 
</span><span style="color: #008000;">/*</span><span style="color: #008000;">
object(A)[2]
  public 'var1' => int 5
  public 'var2' => string 'foo' (length=3)
 </span><span style="color: #008000;">*/</span>
<span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$b</span><span style="color: #000000;">);
</span>?>
Copy after login
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template