我正在尝试使用php并决定创建一个非常简单的程序来测试类继承并学习这种语言的绳索。
所以,我有一个主类,它调用一个实现接口的类。 很简单,但当我运行它时,他告诉我他找不到这些课程:
致命错误:在C:\ Users \ Paulo中找不到“PHPSTORM_META \ Shape”类 第12行的Moreno \ PhpstormProjects \ test \ Square.php
问题是,这正是该文件的位置。路径是正确的。
这是主要代码:
MainTest.php
<?php
echo "Hello World";
require_once dirname(__DIR__) . '\test\MainTest.php ';
require_once dirname(__DIR__) . '/test/Square.php ';
require_once dirname(__DIR__) . '/test/Shape.php ';
require_once dirname(__DIR__) . '/test/GeoShape.php ';
echo "Hello World";
$rect = new Square(5, 5);
echo $rect->getArea();
echo "<br>" . $rect->getName();
方形类:
<?php
/**
* Created by PhpStorm.
* User: Paulo Moreno
* Date: 4-12-2016
* Time: 15:57
*/
namespace PHPSTORM_META;
class Square extends Shape implements GeoShape
{
public $x;
public $y;
public function __construct($x, $y)
{parent::__construct($this->name);
$this->x = $x;
$this->y = $y;
}
public function getArea()
{
return $this->x * $this->y;
}
}
这可能是一件非常简单的事情,让我想把头撞在墙上,但我已经坚持了很长一段时间。是的,我是php和phpstorm的新手。
答案 0 :(得分:0)
删除文件名后的空格:
require_once dirname(__DIR__) . '\test\MainTest.php';
require_once dirname(__DIR__) . '/test/Square.php';
require_once dirname(__DIR__) . '/test/Shape.php';
require_once dirname(__DIR__) . '/test/GeoShape.php';
我也不太明白为什么你会在其中一个文件名中使用反斜杠。我也用forwardslashes替换它。
此外,您还需要在名称空间中包含要使用类
的名称空间use PHPSTORM_META;
答案 1 :(得分:-2)
dirname()
是函数需要定义路径。你的问题是关闭括号。 __DIR__
是定义文件当前目录的神奇常量,请尝试下面的代码。
require_once __DIR__.'/test/MainTest.php';
require_once __DIR__.'/test/Square.php';
require_once __DIR__.'/test/Shape.php';
require_once __DIR__.'/test/GeoShape.php';