douqiang6036 2012-01-09 08:32
浏览 24
已采纳

使用PHP访问Static方法内的Class属性的最佳方法

Here is my class property

private $my_paths = array(
        'imagemagick' => 'E:\Server\_ImageOptimize\ImageMagick',
        'pngcrush' => 'E:\Server\_ImageOptimize\pngCrush\pngcrush.exe',
        'jpegtran' => 'E:\Server\_ImageOptimize\jpegtran\jpegtran.exe',
        'gifsicle' => 'E:\Server\_ImageOptimize\gifsicle\gifsicle.exe',
        'pngquant' => 'E:\Server\_ImageOptimize\pngquant\pngquant.exe',
        'pngout' => 'E:\Server\_ImageOptimize\pngout\pngout.exe'
);

There is a static method in the same class...

public static function is_image($file_path)
{

    $imagemagick = $this->my_paths['imagemagick']. '\identify';

    echo $imagemagick;
}

Of course this gives me errors like

Fatal error: Using $this when not in object context...

I then tried accessing the property like this self::my_paths['imagemagick'] but that did not help.

How should I handle this?

  • 写回答

4条回答 默认 最新

  • dsozqcx9668 2012-01-09 08:36
    关注

    You need the $ sign in front of the variable/property name, so it becomes:

    self::$my_paths['imagemagick']
    

    And my_paths is not declared as static. So you need it to be

    private static $my_paths = array(...);
    

    When it does not have the "static" keyword in front of it, it expects to be instantiated in an object.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源