如何在php类中调用函数?

如何在php类中调用函数?,php,class,imagick,system.drawing.imaging,Php,Class,Imagick,System.drawing.imaging,这是一个示例代码: 我想在另一页中调用它: include 'root of class file'; $r = new ImagineResizer(); 我得到了这个错误: Fatal error: Class 'ImagineResizer' not found in C:\WampDeveloper\Websites\example.com\webroot\images.php on line 13 也可以调用函数: $r->resize('c:/test1.jpg', 'c

这是一个示例代码:

我想在另一页中调用它:

include 'root of class file';
$r = new ImagineResizer();
我得到了这个错误:

Fatal error: Class 'ImagineResizer' not found in C:\WampDeveloper\Websites\example.com\webroot\images.php on line 13
也可以调用函数:

$r->resize('c:/test1.jpg', 'c:/test2.jpg');

希望这能帮助您解决一些问题:

  • 确保包含实际的文件,而不仅仅是它所在的文件夹
  • 确保从中调用类的文件使用与类文件相同的命名空间。如果没有,则必须使用完整的命名空间调用该类
  • 利润
  • 当我开始使用名称空间时,名称空间真的让我很有耐心,但一旦你习惯了,就不难了。不过我建议使用自动加载器。设置起来有点麻烦,但一旦设置完成,会有很大帮助

    • 名称空间:
    • 自动加载器:

    从示例代码中可以看出,该类位于另一个命名空间中:

    <?php 
    
    namespace Acme\MyBundle\Service;
    use Symfony\Component\HttpFoundation\File\File;
    use Imagine\Image\ImagineInterface;
    use Imagine\Image\BoxInterface;
    use Imagine\Image\Point;
    use Imagine\Image\Box;
    
    class ImagineResizer {
        //-- rest of code     
    }
    
    或指向绝对类:

    $object = new \Acme\MyBundle\Service\ImageResizer();
    

    它们是否位于同一文件夹中?
    使用Acme\MyBundle\Service\ImageResizer
    您必须包括类文件,而不仅仅是文件的根文件夹。您需要在类名称之前和
    new
    关键字之后指定名称空间<代码>$r=new Acme\MyBundle\Service\ImageResizer()尝试使用require而不是include来捕获错误。您的类文件未加载。非常感谢您的帮助:)
    $object = new \Acme\MyBundle\Service\ImageResizer();