一尘不染

这是什么意思?“解析错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM”

php

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;
    }
}

不知道为什么这不起作用/错误是什么意思…


阅读 501

收藏
2020-05-29

共1个答案

一尘不染

T_PAAMAYIM_NEKUDOTAYIM是PHP使用的双冒号范围解析–::

快速浏览一下您的代码,我认为这一行:

return $cnf::getConfig($key);

应该

return $cnf->getConfig($key);

第一种是静态调用方法的方式-如果$ cnf包含也是有效类的字符串,则此代码将有效。->语法用于在类/对象的实例上调用方法。

2020-05-29