如何在PHP中使用与require相同的上下文创建函数?

时间:2011-09-20 05:51:15

标签: php oop class function this

当我尝试在文件上使用此错误时,此问题是由于错误引起的。我有一个页面类的文件:

class Page {
   function whatHappen()
   {
      echo "this may work";
   }  
   function helloWorld()
   {
       echo "This is my page!";
       require( "usethis.php" );      // --> this works
       similar_require( "usethis.php" );    // ---> with this I get an error
   }
   function write()
   {
       $this->helloWorld();
   }
}

与需要类似的功能:

function similar_require( $filepath )
{
   require( $filepath );
}

在usethis.php文件中我有这个:

<?php
   $this->whatHappen();
?>

如何做同样的函数,就像使用相同的函数一样工作吗?

2 个答案:

答案 0 :(得分:2)

在usethis.php中,您尝试访问$thissimilar_require未在{{1}}函数范围内声明。 阅读有关可见性的信息:http://www.php.net/manual/en/language.variables.scope.php

所有这些代码看起来都很脏:不要在方法或函数中使用'require'或'include' - 就像使用全局变量一样(并且全局变量非常糟糕)。

答案 1 :(得分:0)

也许这会奏效:

function similar_require( $filepath, $this )
{
   require( $filepath );
}

similar_require( "usethis.php", $this );