T_PAAMAYIM_NEKUDOTAYIM听起来真的很异国情调,但对我来说绝对是胡说八道。我将其全部追溯到以下代码行:
<?php Class Context { protected $config; public function getConfig($key) { // Here's the problem somewhere... $cnf = $this->config; return $cnf::getConfig($key); } function __construct() { $this->config = new Config(); } } ?>
在构造函数中,我创建一个Config对象。这是课程:
final class Config { private static $instance = NULL; private static $config; public static function getConfig($key) { return self::$config[$key]; } public static function getInstance() { if (!self::$instance) { self::$instance = new Config(); } return self::$instance; } private function __construct() { // include configuration file include __ROOT_INCLUDE_PATH . '/sys/config/config.php'; // defines a $config array $this->config = $config; } }
不知道为什么这不起作用/错误是什么意思…
T_PAAMAYIM_NEKUDOTAYIM是PHP使用的双冒号范围解析–::
快速浏览一下您的代码,我认为这一行:
return $cnf::getConfig($key);
应该
return $cnf->getConfig($key);
第一种是静态调用方法的方式-如果$ cnf包含也是有效类的字符串,则此代码将有效。->语法用于在类/对象的实例上调用方法。