-3

我只想在调用方法时才包含文件。所以,如果我正在做这样的事情:

class foo
{
   function printer()
   {
      //Do something
      return $something;
   }

   function some_math($a, $b)
   {
      if($a == $b)
      {
          require_once('path/to/some_class.php');
          $instance = new some_class();
          //Do something with some_class
      }
      else
      {
          //Do another things
      }
      return $some_result;
   }

}

$var = new foo();
$var->some_math(2, 3);

在这种情况下会解析 some_class.php 吗?

我有一些繁重的库,我不想在不需要它们时对它们进行 PHP 解析。

这是一个正常的解决方案吗?如果没有,我该如何解决这个问题?=)(自动加载不起作用,正如我所愿。当我使用它时,自动加载每次都包含文件)。

4

1 回答 1

0

仅当调用 $var->some_math() 并且 $a == $b 时才会加载 some_class.php。但是,就像其他人提到的那样;很容易测试;

将此添加到 some_class.php 的开头;

echo 'Hello world'; exit();

并在不调用 $var->some_math(..); 的情况下运行您的代码 不应出现“Hello world”。

然后修改您的代码并调用$var->some_math(1,1); “Hello world”应该出现

于 2013-01-26T21:37:18.490 回答