} public function getData() { return $this->data; } } // 工厂模式 指代在某一个 class ImageFactory { public static function factory($file) { $pathParts = pathinfo($file); switch (strtolower($pathParts['extension'])) { case 'jpg': $ret = new Image_Jpeg($file); break; case 'png': $ret = new Image_Png($file); break; default: break; } if ($ret instanceof IImage) { return $ret; } else { echo '错误'; } } } $image = ImageFactory::factory("./my.png"); echo $image->getWidth();
/** * Opens an image file. * * @deprecated This function is deprecated, use load_image() * with the colorize, ignoremask, invert, mask, masked, and page * options instead. * * @param string $imagetype * @param string $filename * @param string $stringparam * @param integer $intparam * @return AbstractImage */ public function open_image_file($imagetype, $filename, $stringparam = '', $intparam = 0) { return ImageFactory::factory($filename); }