Как включить пакет / класс в переполнение стека

Я новичок в PHP, и пытаюсь решить некоторые HackerRank проблемы в PHP.

Когда я включил вектор Класс, как описано в этот пост, я получил следующую ошибку:

Предупреждение PHP: требуется (php-ds.php): не удалось открыть поток: такого файла или каталога в файле решений.php нет в строке 2

Неустранимая ошибка PHP: require (): Не удалось открыть требуемый файл php-ds.php (include_path = ‘.: / Usr / share / php’) в solution.php в строке 2

Это потому, что на сайте нет такого класса? Или я что-то пропустил? Есть ли способ, которым мы можем использовать «встроенный» вектор в 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

Решение

В PHP обычно лучше включать файлы, используя их полный путь.

Самый простой способ достичь этого — делать;

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

__DIR__ возвращает каталог файла, в котором вы сейчас находитесь. Так, например, если я редактировал c:\www\example.php это вернется c:/www,

Ты можешь использовать ../ пойти вверх по каталогу.

0

Другие решения

Линия: require("php-ds.php"); просит PHP найти файл в той же директории, в которой находится ваш скрипт, а затем убедиться, что он включен в скрипт, иначе он потерпит неудачу. (в этом разница между «требовать» и «включать»).

Во-первых, убедитесь, что в той же директории, что и скрипт, который вы здесь пишете, есть файл php-ds.php. Если нет, это не сработает. Если он находится в другой папке, вам нужно указать require() утверждение по правильному пути, т.е. если его в каталоге выше, вы бы использовали:

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

или если это в подкаталоге:

require 'subdir/php-ds.php';

надеюсь, это поможет

0

По вопросам рекламы [email protected]