PHP 不加载包含的类

Tri*_*ett 1 php class

我正在编写一些 PHP 来实现足球队之间的 ELO。我正在使用此处找到的 ELO 类:https : //github.com/Chovanec/elo-rating并且我根本没有修改该代码。

这是让我发疯的事情,我显然错过了一些明显的东西,但我不知道是什么。

所以在我的 PHP 文件:results.php 我有以下内容:

<?php
    require_once('Rating.php');
Run Code Online (Sandbox Code Playgroud)

然后它进入代码,在我实现 Rating 类时总是给出错误:

$r = new Rating($teamA,$teamB,1,0);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Fatal error: Class 'Rating' not found in /home/XXXXX/public_html/soccer/results.php on line 65
Run Code Online (Sandbox Code Playgroud)

因此,为了尝试检查错误,我一直回到顶部并使用以下内容:

<?php
    require_once('Rating.php');



    if (class_exists('Rating')) {
        echo "Found";
    } else {
        echo "Not found";
    }
    die();
Run Code Online (Sandbox Code Playgroud)

我得到“未找到”

Rating.php 文件打开如下:

<?php

/**
 * This class calculates ratings based on the Elo system used in chess.
 *
 * @author Michal Chovanec <michalchovaneceu@gmail.com>
 * @copyright Copyright © 2012 - 2014 Michal Chovanec
 * @license Creative Commons Attribution 4.0 International License
 */

namespace Rating;

class Rating
{
Run Code Online (Sandbox Code Playgroud)

我已确认文件已正确加载。

我错过了什么?

Ken*_*nny 5

试着这样称呼它:

$r = new Rating\Rating($teamA,$teamB,1,0);
Run Code Online (Sandbox Code Playgroud)

或者,从 Rating 类中删除命名空间。

您的主要代码位于根命名空间“\”中,因此您必须告诉它您想要进入 Rating 命名空间。

您也可以放在use Rating;索引文件的顶部,而不是在类名之前添加命名空间 - 只是不要两者都做。