Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_1.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test of the *intersect* bunch of functions (both assoc and non-assoc)
        !             3: --FILE--
        !             4: <?php
        !             5: error_reporting(E_ALL);
        !             6: class cr {
        !             7:        private $priv_member;
        !             8:        public  $public_member;
        !             9:        function cr($val) {
        !            10:                $this->priv_member = $val;
        !            11:                $this->public_member = $val;
        !            12:        }
        !            13:        static function comp_func_cr($a, $b) {
        !            14:                if ($a->priv_member === $b->priv_member) return 0;
        !            15:                return ($a->priv_member > $b->priv_member)? 1:-1;
        !            16:        }
        !            17: }
        !            18: 
        !            19: function comp_func($a, $b) {
        !            20:        if ($a === $b) return 0;
        !            21:        return ($a > $b)? 1:-1;
        !            22: 
        !            23: }
        !            24: 
        !            25: function comp_func_cr($a, $b) {
        !            26:        if ($a->public_member === $b->public_member) return 0;
        !            27:        return ($a->public_member > $b->public_member)? 1:-1;
        !            28: }
        !            29: 
        !            30: $a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
        !            31: $b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);
        !            32: 
        !            33: /* array_uintersect() */
        !            34: echo "begin ------------ array_uintersect() ---------------------------\n";
        !            35: echo '$a='.var_export($a,TRUE).";\n";
        !            36: echo '$b='.var_export($b,TRUE).";\n";
        !            37: echo 'var_dump(array_uintersect($a, $b, "comp_func_cr"));'."\n";
        !            38: var_dump(array_uintersect($a, $b, "comp_func_cr"));
        !            39: echo "end   ------------ array_uintersect() ---------------------------\n";
        !            40: 
        !            41: /* array_uintersect_assoc() */
        !            42: echo "begin ------------ array_uintersect_assoc() ---------------------\n";
        !            43: echo '$a='.var_export($a,TRUE).";\n";
        !            44: echo '$b='.var_export($b,TRUE).";\n";
        !            45: echo 'var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));'."\n";
        !            46: var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
        !            47: echo "end   ------------ array_uintersect_assoc() ---------------------\n";
        !            48: 
        !            49: /* array_uintersect_uassoc() - with ordinary function */
        !            50: echo "begin ------------ array_uintersect_uassoc() with ordinary func -\n";
        !            51: echo '$a='.var_export($a,TRUE).";\n";
        !            52: echo '$b='.var_export($b,TRUE).";\n";
        !            53: echo 'var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));'."\n";
        !            54: var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
        !            55: echo "end   ------------ array_uintersect_uassoc() with ordinary func -\n";
        !            56: 
        !            57: /* array_uintersect_uassoc() - by method call */
        !            58: echo "begin ------------ array_uintersect_uassoc() with method --------\n";
        !            59: echo '$a='.var_export($a,TRUE).";\n";
        !            60: echo '$b='.var_export($b,TRUE).";\n";
        !            61: echo 'var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));'."\n";
        !            62: var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
        !            63: echo "end   ------------ array_uintersect_uassoc() with method --------\n";
        !            64: ?>
        !            65: --EXPECTF--
        !            66: begin ------------ array_uintersect() ---------------------------
        !            67: $a=array (
        !            68:   '0.1' => 
        !            69:   cr::__set_state(array(
        !            70:      'priv_member' => 9,
        !            71:      'public_member' => 9,
        !            72:   )),
        !            73:   '0.5' => 
        !            74:   cr::__set_state(array(
        !            75:      'priv_member' => 12,
        !            76:      'public_member' => 12,
        !            77:   )),
        !            78:   0 => 
        !            79:   cr::__set_state(array(
        !            80:      'priv_member' => 23,
        !            81:      'public_member' => 23,
        !            82:   )),
        !            83:   1 => 
        !            84:   cr::__set_state(array(
        !            85:      'priv_member' => 4,
        !            86:      'public_member' => 4,
        !            87:   )),
        !            88:   2 => 
        !            89:   cr::__set_state(array(
        !            90:      'priv_member' => -15,
        !            91:      'public_member' => -15,
        !            92:   )),
        !            93: );
        !            94: $b=array (
        !            95:   '0.2' => 
        !            96:   cr::__set_state(array(
        !            97:      'priv_member' => 9,
        !            98:      'public_member' => 9,
        !            99:   )),
        !           100:   '0.5' => 
        !           101:   cr::__set_state(array(
        !           102:      'priv_member' => 22,
        !           103:      'public_member' => 22,
        !           104:   )),
        !           105:   0 => 
        !           106:   cr::__set_state(array(
        !           107:      'priv_member' => 3,
        !           108:      'public_member' => 3,
        !           109:   )),
        !           110:   1 => 
        !           111:   cr::__set_state(array(
        !           112:      'priv_member' => 4,
        !           113:      'public_member' => 4,
        !           114:   )),
        !           115:   2 => 
        !           116:   cr::__set_state(array(
        !           117:      'priv_member' => -15,
        !           118:      'public_member' => -15,
        !           119:   )),
        !           120: );
        !           121: var_dump(array_uintersect($a, $b, "comp_func_cr"));
        !           122: array(3) {
        !           123:   ["0.1"]=>
        !           124:   object(cr)#%d (2) {
        !           125:     ["priv_member":"cr":private]=>
        !           126:     int(9)
        !           127:     ["public_member"]=>
        !           128:     int(9)
        !           129:   }
        !           130:   [1]=>
        !           131:   object(cr)#%d (2) {
        !           132:     ["priv_member":"cr":private]=>
        !           133:     int(4)
        !           134:     ["public_member"]=>
        !           135:     int(4)
        !           136:   }
        !           137:   [2]=>
        !           138:   object(cr)#%d (2) {
        !           139:     ["priv_member":"cr":private]=>
        !           140:     int(-15)
        !           141:     ["public_member"]=>
        !           142:     int(-15)
        !           143:   }
        !           144: }
        !           145: end   ------------ array_uintersect() ---------------------------
        !           146: begin ------------ array_uintersect_assoc() ---------------------
        !           147: $a=array (
        !           148:   '0.1' => 
        !           149:   cr::__set_state(array(
        !           150:      'priv_member' => 9,
        !           151:      'public_member' => 9,
        !           152:   )),
        !           153:   '0.5' => 
        !           154:   cr::__set_state(array(
        !           155:      'priv_member' => 12,
        !           156:      'public_member' => 12,
        !           157:   )),
        !           158:   0 => 
        !           159:   cr::__set_state(array(
        !           160:      'priv_member' => 23,
        !           161:      'public_member' => 23,
        !           162:   )),
        !           163:   1 => 
        !           164:   cr::__set_state(array(
        !           165:      'priv_member' => 4,
        !           166:      'public_member' => 4,
        !           167:   )),
        !           168:   2 => 
        !           169:   cr::__set_state(array(
        !           170:      'priv_member' => -15,
        !           171:      'public_member' => -15,
        !           172:   )),
        !           173: );
        !           174: $b=array (
        !           175:   '0.2' => 
        !           176:   cr::__set_state(array(
        !           177:      'priv_member' => 9,
        !           178:      'public_member' => 9,
        !           179:   )),
        !           180:   '0.5' => 
        !           181:   cr::__set_state(array(
        !           182:      'priv_member' => 22,
        !           183:      'public_member' => 22,
        !           184:   )),
        !           185:   0 => 
        !           186:   cr::__set_state(array(
        !           187:      'priv_member' => 3,
        !           188:      'public_member' => 3,
        !           189:   )),
        !           190:   1 => 
        !           191:   cr::__set_state(array(
        !           192:      'priv_member' => 4,
        !           193:      'public_member' => 4,
        !           194:   )),
        !           195:   2 => 
        !           196:   cr::__set_state(array(
        !           197:      'priv_member' => -15,
        !           198:      'public_member' => -15,
        !           199:   )),
        !           200: );
        !           201: var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
        !           202: array(2) {
        !           203:   [1]=>
        !           204:   object(cr)#%d (2) {
        !           205:     ["priv_member":"cr":private]=>
        !           206:     int(4)
        !           207:     ["public_member"]=>
        !           208:     int(4)
        !           209:   }
        !           210:   [2]=>
        !           211:   object(cr)#%d (2) {
        !           212:     ["priv_member":"cr":private]=>
        !           213:     int(-15)
        !           214:     ["public_member"]=>
        !           215:     int(-15)
        !           216:   }
        !           217: }
        !           218: end   ------------ array_uintersect_assoc() ---------------------
        !           219: begin ------------ array_uintersect_uassoc() with ordinary func -
        !           220: $a=array (
        !           221:   '0.1' => 
        !           222:   cr::__set_state(array(
        !           223:      'priv_member' => 9,
        !           224:      'public_member' => 9,
        !           225:   )),
        !           226:   '0.5' => 
        !           227:   cr::__set_state(array(
        !           228:      'priv_member' => 12,
        !           229:      'public_member' => 12,
        !           230:   )),
        !           231:   0 => 
        !           232:   cr::__set_state(array(
        !           233:      'priv_member' => 23,
        !           234:      'public_member' => 23,
        !           235:   )),
        !           236:   1 => 
        !           237:   cr::__set_state(array(
        !           238:      'priv_member' => 4,
        !           239:      'public_member' => 4,
        !           240:   )),
        !           241:   2 => 
        !           242:   cr::__set_state(array(
        !           243:      'priv_member' => -15,
        !           244:      'public_member' => -15,
        !           245:   )),
        !           246: );
        !           247: $b=array (
        !           248:   '0.2' => 
        !           249:   cr::__set_state(array(
        !           250:      'priv_member' => 9,
        !           251:      'public_member' => 9,
        !           252:   )),
        !           253:   '0.5' => 
        !           254:   cr::__set_state(array(
        !           255:      'priv_member' => 22,
        !           256:      'public_member' => 22,
        !           257:   )),
        !           258:   0 => 
        !           259:   cr::__set_state(array(
        !           260:      'priv_member' => 3,
        !           261:      'public_member' => 3,
        !           262:   )),
        !           263:   1 => 
        !           264:   cr::__set_state(array(
        !           265:      'priv_member' => 4,
        !           266:      'public_member' => 4,
        !           267:   )),
        !           268:   2 => 
        !           269:   cr::__set_state(array(
        !           270:      'priv_member' => -15,
        !           271:      'public_member' => -15,
        !           272:   )),
        !           273: );
        !           274: var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
        !           275: array(2) {
        !           276:   [1]=>
        !           277:   object(cr)#%d (2) {
        !           278:     ["priv_member":"cr":private]=>
        !           279:     int(4)
        !           280:     ["public_member"]=>
        !           281:     int(4)
        !           282:   }
        !           283:   [2]=>
        !           284:   object(cr)#%d (2) {
        !           285:     ["priv_member":"cr":private]=>
        !           286:     int(-15)
        !           287:     ["public_member"]=>
        !           288:     int(-15)
        !           289:   }
        !           290: }
        !           291: end   ------------ array_uintersect_uassoc() with ordinary func -
        !           292: begin ------------ array_uintersect_uassoc() with method --------
        !           293: $a=array (
        !           294:   '0.1' => 
        !           295:   cr::__set_state(array(
        !           296:      'priv_member' => 9,
        !           297:      'public_member' => 9,
        !           298:   )),
        !           299:   '0.5' => 
        !           300:   cr::__set_state(array(
        !           301:      'priv_member' => 12,
        !           302:      'public_member' => 12,
        !           303:   )),
        !           304:   0 => 
        !           305:   cr::__set_state(array(
        !           306:      'priv_member' => 23,
        !           307:      'public_member' => 23,
        !           308:   )),
        !           309:   1 => 
        !           310:   cr::__set_state(array(
        !           311:      'priv_member' => 4,
        !           312:      'public_member' => 4,
        !           313:   )),
        !           314:   2 => 
        !           315:   cr::__set_state(array(
        !           316:      'priv_member' => -15,
        !           317:      'public_member' => -15,
        !           318:   )),
        !           319: );
        !           320: $b=array (
        !           321:   '0.2' => 
        !           322:   cr::__set_state(array(
        !           323:      'priv_member' => 9,
        !           324:      'public_member' => 9,
        !           325:   )),
        !           326:   '0.5' => 
        !           327:   cr::__set_state(array(
        !           328:      'priv_member' => 22,
        !           329:      'public_member' => 22,
        !           330:   )),
        !           331:   0 => 
        !           332:   cr::__set_state(array(
        !           333:      'priv_member' => 3,
        !           334:      'public_member' => 3,
        !           335:   )),
        !           336:   1 => 
        !           337:   cr::__set_state(array(
        !           338:      'priv_member' => 4,
        !           339:      'public_member' => 4,
        !           340:   )),
        !           341:   2 => 
        !           342:   cr::__set_state(array(
        !           343:      'priv_member' => -15,
        !           344:      'public_member' => -15,
        !           345:   )),
        !           346: );
        !           347: var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
        !           348: array(2) {
        !           349:   [1]=>
        !           350:   object(cr)#%d (2) {
        !           351:     ["priv_member":"cr":private]=>
        !           352:     int(4)
        !           353:     ["public_member"]=>
        !           354:     int(4)
        !           355:   }
        !           356:   [2]=>
        !           357:   object(cr)#%d (2) {
        !           358:     ["priv_member":"cr":private]=>
        !           359:     int(-15)
        !           360:     ["public_member"]=>
        !           361:     int(-15)
        !           362:   }
        !           363: }
        !           364: end   ------------ array_uintersect_uassoc() with method --------

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>