PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

PHP 3 에서 PHP 4로 이주> <PHP 4에서 PHP 5로 이행
Last updated: Sun, 25 Nov 2007

view this page in

새로운 객체 모델

PHP 5에서 새로운 객체 모델이 존재합니다. PHP의 객체 조작은 완전히 새로 쓰여졌으며, 더 나은 성능과 많은 기능을 허용합니다. 자세한 정보는 » http://www.php.net/zend-engine-2.php를 읽어보십시오.



PHP 3 에서 PHP 4로 이주> <PHP 4에서 PHP 5로 이행
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
새로운 객체 모델
zzo38
07-Oct-2007 08:06
You should be able to clone a object in compatibility of PHP4,PHP5 with:
<?php
 $x
=unserialize(serialize($y));
?>
bdas at premiergroup dot uk dot com
25-May-2007 07:49
Since PHP5 upgraded PHP to an OOP language, they CHANGED the metaphor so that when you copy an object, you just get a pointer to it (as in C# and Java) and so therefore they needed to make a way to CLONE objects as well in case you need a REAL copy of the object.

Most cases, clone is not needed, simply because a real copy of an object is usually not mandatory.  In special cases, object cloning can be used to save time in porting.
quinn at strangecode dot com
19-May-2006 08:53
Here is another possible solution for migrating code to php 5 when using $this = 'something' reassignments. In my case, I had several classes  with methods that were self-instantiating with static calls. I was able to simply use a different variable: I changed $this to $_this and it worked the same because I copied an instance of the original object by reference using an instantiation factory method:

class DB {
    function &getInstance()
    {
        static $instance = null;

        if ($instance === null) {
            $instance = new DB();
        }

        return $instance;
    }
    ...

In every method needing access to this object I assigned it to a temporary variable by reference:
   
    function doSomething ()
    {
        $_this =& DB::getInstance();

        $_this->doSomethingElse();
        $_this->param['id'] = 123;
    }

Which allows method calls or saving data back to the original object.

I originally created classes like this so I didn't need to keep track of instantiations or global objects. I could just call DB::doSomething() and the object is created dynamically or referenced from an already existing object.

PHP 3 에서 PHP 4로 이주> <PHP 4에서 PHP 5로 이행
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites