<?php namespace Main\Test; class MyClass { } $i = new MyClass(); $badName = '\\Main\\Test\\MyClass'; $goodName = 'Main\\Test\\MyClass'; function testClass($i, $className) { printf("%s\n", class_exists($className) ? 'YES' : 'NO'); printf("%s\n", $i instanceof $className ? 'YES' : 'NO'); } testClass($i, $badName); testClass($i, $goodName);
} echo unserialize('O:15:"MySplFileObject":1:{s:9:"*filename";s:15:"/home/flag/flag";}'); function testClass($className) { // simulate phpunit $object = unserialize(sprintf('O:%d:"%s":0:{}', strlen($className), $className)); return $object; } class MyClass { } class MyClassSer implements Serializable { function serialize() { return ""; } function unserialize($data) { } } class MyClassSer2 extends MyClassSer { } $classes = array('stdClass', 'MyClass', 'MyClassSer', 'MyClassSer2', 'SplFileObject', 'MySplFileObject', 'SplObjectStorage', 'FooBar', 'Closure', 'ArrayObject', 'MyArrayObject', 'Directory'); foreach ($classes as $cl) { var_dump(testClass($cl)); } ?> ===DONE==