Что точечная наклонная черта делает к PHP, включают вызовы?

Вы можете просто проверить длину sys.argv.

if len(sys.argv) < 2:
    # Error, not enough arguments

lira_cbt = sys.argv[1]
if len(sys.argv) == 2:
    # Do X
else:
    eur_hedge = sys.argv[2]
    # Do Y
39
задан Robinicks 24 February 2009 в 07:11
поделиться

6 ответов

./ текущие каталог. Это - в основном то же как всего file.php, но во многих случаях (включенный) это не проверяет, что любой стандарт помещает, PHP мог бы искать файл, вместо этого проверяя только текущий каталог.

От документация PHP (замечают последнее предложение):

Файлы для включения сначала разыскиваются в каждой include_path записи относительно текущего рабочего каталога, и затем в каталоге текущего сценария. Например, если Ваш include_path является библиотеками, текущий рабочий каталог является/www/, Вы включали include/a.php и существует, включают "b.php" в тот файл, b.php сначала смотрят в/www/libraries/и затем в/www/include/. Если имя файла начинается с./или../, это смотрят только в текущем рабочем каталоге.

48
ответ дан Chris Lutz 7 July 2019 в 02:13
поделиться

Короткий Ответ

Вы правы, это не один каталог. A. обращается к каталогу, Вы находитесь в, и.. обращается к родительскому каталогу.

Значение./file.php и file.php функционально эквивалентны в PHP. Вот соответствующая страница документации: http://us.php.net/manual/en/wrappers.file.php

Более длинный Ответ

Однако просто, потому что они работают, то же в этом контексте не означает, что они всегда - то же.

, Когда Вы действуете в *, отклоняют среду оболочки, и Вы вводите имя исполняемого файла, оболочка посмотрит в каталогах PATH, но это не посмотрит в CWD или каталоге, в котором Вы в настоящее время находитесь.

Так, если Вы находитесь в каталоге, которому назвали файл: myprogram.php (это было бы файлом CLI PHP) и Вы просто вводите:

myprogram.php

не имеет значения, если Ваша программа является исполняемым файлом или нет. Оболочка посмотрит в / мусорном ведре/,/usr/bin/и т.д. для Вашего файла, но это не заглянет./, или каталог Вы находитесь в.

Для выполнения той программы, не добавляя каталог к ПУТИ Вам нужно к типу

./myprogram

Поэтому действительно./является более явным. Это означает, "файл, который Вы ищете, должен быть прямо здесь" и никакие средства./, "файл должен быть где-нибудь программой, ища файлы".

6
ответ дан danieltalsky 7 July 2019 в 02:13
поделиться

Первая версия вынуждает внутренний механизм включать файлы относительно в... непосредственно выполняемый файл. Так, например, Вы имеете

index.php

// directly executed script (php -f index.php or from a browser)
include 'second.php';

second.php

// This is included relatively to index.php
// Actually, it is first searched relatively to include_path, then relatively
// to index.php
include './third.php';

third.php

// This is included relatively to second.php ONLY. It does not search
// include_path
return "foo";
8
ответ дан Lèse majesté 7 July 2019 в 02:13
поделиться

Точечная наклонная черта вынуждает файл быть найденным в текущем каталоге только, вместо того, чтобы дополнительно искать пути, упомянутые в установке include_path.

5
ответ дан ghd 7 July 2019 в 02:13
поделиться

Просто Вы говорите php включать файл в текущий каталог только или сбой, если файл не присутствует.

, Если Вы используете формат "indexcommon3.php" и файл, не присутствует, php будет искать его в include_path системную переменную.

Для ссылки можно использовать http://www.php.net/manual/en/function.include.php

4
ответ дан Eineki 7 July 2019 в 02:13
поделиться

Это явно называет текущий каталог.

0
ответ дан Charlie Martin 7 July 2019 в 02:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: