PHP set_include_path - PullRequest
       26

PHP set_include_path

2 голосов
/ 04 февраля 2012

Я не могу понять значение этого утверждения:

set_include_path('.'
. PATH_SEPARATOR . '../library/'
. PATH_SEPARATOR . '../application'
. PATH_SEPARATOR . get_include_path());

Хотелось бы получить быстрый анализ.

Ответы [ 3 ]

3 голосов
/ 04 февраля 2012

Добавляет два пути к include_path, чтобы при добавлении файла "../library/filename.php".Вы можете сделать это с помощью

include('filename.php');

вместо

include('../library/filename.php');

Я полагаю, это является частью некоторого фреймворка

Это в основном добавляет папку к пути включения php

1 голос
/ 30 марта 2012

Первое, что следует здесь отметить, это то, что константа PATH_SEPARATOR является предопределенной константой, которая допускает кроссплатформенный разделитель пути (он разрешается в «:» в Unix-подобных системах и «;» в Windows).

Следующий код также может привести к тому же результату, но его немного легче читать:

<?php
$paths = array('.', '../library/', '../application', get_include_path());
set_include_path(join(PATH_SEPARATOR, $paths));

или чуть более многословно, но легко добавить к:

<?php

$paths[] = '.';
$paths[] = '../library/';
$paths[] = '../application';
$paths[] = get_include_path();

set_include_path(join(PATH_SEPARATOR, $paths));
0 голосов
/ 25 июля 2014

Что делает функция php set_include_path?

Устанавливает возможное местоположение для движка php для поиска файлов.

Например:

Я поместил это в php файл с именем cmp.php в /home1/machines/public_html

<?php
  print "1<br>";
  require("hello.php");
  print "<br>2<br>";

  set_include_path("/home1/machines/public_html/php");

  print "<br>3<br>";
  require("hello.php");
  print "<br>4<br>";
?>

Создайте новый файл hello.php в /home1/machines/public_html, поместите его туда:

<?php
print "hello from public_html";
?>

Создайте второй новый файл с именем hello.php в /home1/machines/public_html/php, поместите его туда:

<?php
print "hello from public_html/php";
?>

Запустите cmp.php, и вы должны получить это:

enter image description here

...