dtsi9484 2012-09-13 08:38
浏览 26
已采纳

调用类自己的函数错误[关闭]

How do I call a function that belongs to the same class within that class?

I have:

class BaseConfig {

public $page ;
public $htmlRoot = 'assets/html/';

public function getPageTitle(){
    echo $page = $_GET['p'];
}

public function getContent(){
    $file = getPageTitle().'.php';
    return readfile($htmlRoot.$file);
}
}

I get the following error when I call

<?PHP Config::getContent();?>

Fatal error: Call to undefined function getPageTitle() in C:\Xit\xampp\htdocs\IMS3\assets\Config.php on line 17

I am creating my own simple framework by the way.


Thanks guys, $this does not work, it just says I can't use it out of object context.

'self' worked so thanks.

Could you please elaborate on the security hole mentioned by Radu?


@S3Mi The file being read is just html. In this use case is what I have done still bad or is it ok?

  • 写回答

3条回答 默认 最新

  • dongpo1203 2012-09-13 08:39
    关注

    You need to use $this-> before the function name:

    $file = $this->getPageTitle().'.php';
    

    If the function is static then instead of $this-> you would use self:: most of the time:

    $value = self::someStaticFunction();
    

    If the function is static there is also a possible scenario where you might need to call it using late static binding, e.g. static::someStaticFunction(). However that hints to a problematic class design so I 'm just mentioning it for completeness.

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

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型