我是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);
答案 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';
希望有所帮助