【问题标题】:How to call static func by passing $_GET params?如何通过传递 $_GET 参数调用静态函数?
【发布时间】:2011-01-04 18:21:35
【问题描述】:

我有一个静态函数>,它被称为 重新生成ThumbnailsCron()

我想通过GET参数来执行这个功能,例如>

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

但是如果我尝试在构造函数中调用这个函数> 类 AdminImages 扩展 AdminTab ...

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

我无法执行此功能。 有什么办法,如何在__construct之前调用这个函数才能正确执行?

非常感谢您的建议。

编辑>

我也尝试了公共功能>

<?php
include 'AdminImages.php';

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

?>

但我有错误> 致命错误:找不到类“AdminTab”

【问题讨论】:

  • 说真的。批准答案需要 5 秒吗?
  • 我希望您在 GET 字符串中没有实际密码...

标签: php


【解决方案1】:

你也需要include 'AdminTab.php';,因为你的类扩展了它

【讨论】:

    【解决方案2】:

    不完全确定我理解你的问题,你是说你有静态类“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()”函数将在构造函数期间被调用。如果需要,您可以将其切换为静态类,如果您的目标是将任何变量和函数从全局范围分隔开来,这将是一种更好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多