当前位置: 首页 > 面试题库 >

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

锺星洲
2023-03-14
问题内容

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包含也是有效类的字符串,则此代码将有效。->语法用于在类/对象的实例上调用方法。



 类似资料:
  • 第22行是: 我不知道为什么我会得到这个,我已经检查了我的语法,所有似乎是正确的。它基本上不喜欢执行查询后的任何内容 编辑: 我明白这是容易SQL注入,但我这样做只是为了测试目的。

  • 问题内容: 我试图从E3roid示例运行示例。除了我什么时候,我都会在页面上强行关闭。这是logcat错误。通过查看它,您能否告诉我这意味着什么,什么问题? 问题答案: 您是否已将AndroidActivity添加到AndroidManifest?

  • 我正在使用Flash和PHP创建一个JPG。我让Flash和PHP在本地主机服务器上按预期工作。当我上传到服务器时,出现以下错误: 分析错误:语法错误,在/home/carlosrg/public\u html/mysubdomain/image中出现意外的“:”。php在线6 以及守则: 提前感谢您的时间。

  • 这是我正在开发的wordpress插件的代码。 我是插件开发新手,不知道为什么会出现这样的错误:

  • 问题内容: 我有这个行代码 在我的本地(WAMP)php 5.4.3上运行良好,但是当我将其托管在服务器cpanel上时,它将给出此错误 我服务器上的php版本是5.2.17 我没有发现任何问题,请帮忙 问题答案: 您需要运行PHP 5.4+才能使用速记数组

  • 问题内容: 调试代码时出现此错误: PHP解析错误:语法错误,第72行的order.php中出现意外的T_OBJECT_OPERATOR 这是代码段(从第72行开始): 问题答案: 不幸的是,不可能在刚用PHP 5.4之前创建的对象上调用方法。 在PHP 5.4和更高版本中,可以使用以下内容: 注意必填的括号对。 在以前的版本中,必须在变量上调用方法: