[mapserver-users] Question about PHP object comparison

Alan Boudreault aboudreault at mapgears.com
Sat Apr 10 06:35:07 PDT 2010


Cristiano,

I haven't tested the code below.. but I assume you are using php 
mapscript 5.6 or ealier. You cannot use the php clone keyword with 
mapscript object since it has no idea how to clone the internal object 
properly. If you would have used php mapscript from svn (which includes 
the refactoring) to do this test, you would have gotten an error since 
the object are not clonable. It's in my enhancement todo list to make 
some objects clonable. I have no idea when this will be done though.

Alan

Cristiano Sumariva wrote:
> I executed this example and object comparison returned true on clone call.
> But it returned false when I request another reference from same layer 
> from getLayer.
> Should not it return true ?
>
>
> #/* 09/04/2010 test for mapserver object comparison on PHP.
> # If I clone a layer object from a map instance and compare the cloned 
> with ref, do they are the same ?
> # Answer: yes.
> # PHP state: Two object instances are equal if they have the same 
> attributes and values, and are instances of the same class
> #require_once dirname( __FILE__ ).'/class/mapfile/Mapfile.php';
> #Mapfile::checkLibrary();
>
> $map = ms_newMapObj( '' );
> var_dump( $map->numlayers );
> $l = ms_newlayerobj( $map );
> var_dump( $map->numlayers );
> print( nl2br( "\n" ) );
> $l->set( 'type', MS_LAYER_POLYGON );
> #var_dump( $l->type );
> $lClone = clone $l;
> var_dump( __LINE__, ( $l == $lClone ) );
> var_dump( __LINE__, ( $l == $map->getLayer( 0 ) ) );
> $lRef = $map->getLayer( 0 );
> var_dump( __LINE__, ( $l == $lRef ), $l->type, $lRef->type );
>
> #repeated test but now with $l from the reference from getLayer
> print( nl2br( "\n" ) );
> $l = $map->getLayer( 0 );
> $lClone = clone $l;
> var_dump( __LINE__, ( $l == $lClone ) );
> var_dump( __LINE__, ( $l == $map->getLayer( 0 ) ) );
> $lRef = $map->getLayer( 0 );
> var_dump( __LINE__, ( $l == $lRef ), $l->type, $lRef->type );
>
> exit;
> ------------------------------------------------------------------------
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>   


-- 
Alan Boudreault
Mapgears
http://www.mapgears.com/ 




More information about the MapServer-users mailing list