如何在PHP中包含一个包/类

时间:2018-04-08 16:17:13

标签: php include-path onlinejudge

我是PHP的新手,并尝试解决PHP中的一些HackerRank问题。

当我按照vector帖子中的说明添加this类时,我收到以下错误:

  

PHP警告:require(php-ds.php):无法打开流:第2行的solution.php中没有此类文件或目录

     

PHP致命错误:require():无法打开所需的' php-ds.php'第2行的solution.php中的(include_path ='。:/ usr / share / php')

是因为网站没有提供这样的课程吗?或者我错过了什么?我们有什么方法可以使用"内置" PHP中的向量?

我的代码如下所示:

<?php
require("php-ds.php");

function xorAndSum($a, $b) {
    $la = strlen($a); $lb = strlen($b);
    define("SHIFT", 10);
    $bufferArray = new \Ds\Vector();   
    $bufferArray->allocate($lb+SHIFT);
    $result = 0;

    return $result;
}

$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%[^\n]", $a);

fscanf($stdin, "%[^\n]", $b);

$result = xorAndSum($a, $b);

fwrite($fptr, $result . "\n");

fclose($stdin);
fclose($fptr);

2 个答案:

答案 0 :(得分:0)

在PHP中,通常最好使用完整路径包含文件。

实现这一目标的最简单方法是:

require(__DIR__ . "/php-ds.php");

__DIR__会返回您当前所在文件的目录。例如,如果我正在修改c:\www\example.php,则会返回c:/www

您可以使用../上传目录。

答案 1 :(得分:0)

行:require("php-ds.php");要求PHP在脚本所在的目录中查找文件,然后确保它包含在脚本中,否则将失败。 (&#39;要求&#39;以及&#39;包括&#39;)之间的区别。

首先,检查您在此处写的脚本所在的目录中是否存在名为&#39; php-ds.php&#39;的文件。如果没有,它就不会起作用。如果它位于不同的文件夹中,您需要将require()语句指向正确的路径,即。如果它在上面的目录中,你可以使用:

require '../php-ds.php';

或者如果它在子目录中:

require 'subdir/php-ds.php';

希望有所帮助