如何通过传递$ _GET参数来调用静态函数?

时间:2011-01-04 18:21:35

标签: php

我有静态功能>这就是所谓的 regenerateThumbnailsCron()

我想通过GET params执行此功能,例如>

if($_GET["pass"]=="password")
self::regenerateThumbnailsCron();

但如果我试图在构造函数中调用此函数> class AdminImages扩展了AdminTab ...

 public function __construct()
 {
    if($_GET["pass"]=="password")
    self::regenerateThumbnailsCron();
}

我无法执行此功能。 无论如何,如何在__construct之前调用此函数来正确执行?

非常感谢任何建议。

编辑>

我还尝试使用公共功能>

<?php
include 'AdminImages.php';

$images = new AdminImages();
$images->regenerateThumbnailsCron();

?>

但是我得到了错误&gt; 致命错误:找不到“AdminTab”类

2 个答案:

答案 0 :(得分:2)

你也需要做一个include 'AdminTab.php';,因为你的课程扩展了

答案 1 :(得分:0)

我不完全确定我理解你的问题,你是说你有静态类“B”,它扩展了类“A”,“A”有你想要在其他任何事情之前调用的regenerateThumbnailsCron()方法吗?

如果是这样的话,试试这个:

<?php
class A {
  private function regenerate() {
  .... do something ....
  }
}

class B extends A {
  function __construct() {
    if ($_GET["pass"] == "password") {
      parent::regenerate();
    }
  }

  function regenerateThunbnailsCron() {
  .... do somethinig ....
  }

}

$images = new B();
$images->regenerateThumbnailsCron();
?>

这样,在构造函数中将调用父级的“regenerate()”函数。如果你愿意,你可以将它转换为静态类,如果你的目标是将任何变量和函数划分为远离全局范围,那么这将是一种更好的方法。