Как вызвать функцию в php из другого файла
Перейти к содержимому

Как вызвать функцию в php из другого файла

  • автор:

Реализовать обращение к функции PHP из другого файла

Можно как-то реализовать обращение к функции PHP в другом файле? Есть основной файл РНР — index.php; Есть функция function first() находящаяся в файле — Funct.php; Можно ли вызвать функцию first() в файле index.php ??

Отслеживать
371 1 1 золотой знак 5 5 серебряных знаков 13 13 бронзовых знаков
задан 1 июл 2013 в 19:27
204 1 1 золотой знак 5 5 серебряных знаков 16 16 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

require_once('Funct.php'); first(); 

include_once , если возможно продолжение работы даже в случае, когда файл отсутствует, но в таком случае получите ошибку:

Call to undefined function first()

include , require , чтобы можно было подключить более одного раза. На втором подключиении получите:

Как вызвать функцию в php из другого файла

Нужен код ACore.php
В общем случае – подключаешь файл ACore.php (include*/require*), создаёшь объект класса из ACore.php, и используешь нужный метод (функцию) этого класса в index.php.

Вообще пишу CMS и сейчас пытаюсь подключить ЧПУ

session_start ();
header ( «Content-Type:text/html;charset=UTF-8» );
require_once( «classes/site/ACore.php» );

if( $content != «main» ) <
$class = getClass ();
>
else <
$class = ‘main’ ;
>

в индексе пытаюсь разобрать ссылку и понять какой класс подключать

abstract class ACore

public function __construct () <
$this -> db = mysql_connect ( HOST , USER , PASSWORD );
if(! $this -> db ) <
exit( «Ошибка соединения с базой данных» . mysql_error ());
>
if(! mysql_select_db ( DB , $this -> db )) <
exit( «Нет такой базы данных» . mysql_error ());
>
mysql_query ( «SET NAMES ‘UTF8′» );

function getClass () <
$alias = substr ( $_SERVER [ «REQUEST_URI» ], 1 );
if( $alias == «/» ) <
$content = «main» ;
>else <
$query = «SELECT `link` FROM `sef` WHERE `alias`=’ $alias ‘» ;
$result = mysql_query ( $query );
if(! $result ) <
exit( mysql_error ());
>
$row = mysql_fetch_array ( $result , MYSQL_ASSOC );
if ( $result_set ) $result_set -> close ();
$vars = parse_url ( $row [ «link» ]);
parse_str ( $vars [ «query» ], $vars );
$content = $vars [ ‘option’ ];
>
return $content ;
>
>

это абстрактный основной класс от которого наследуются другие классы. Категории, меню и тд
Вообщем, я хочу разобрать ссылку и понять какой класс подключить, но функцию на разбор ссылки не вызвать ,а если прописывать ее в index.php ,то придется еще раз делать подключение к БД, то есть будет подключение и в index и в ACore , а это не есть хорошо(я так думаю)

Как вызвать функцию с другого файла php?

Не совсем понятно что вы хотели этим изобразить, но надо же функцию вызвать, чтобы что-то получить в print_r().

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

function all_pages() < $query = mysql_query("SELECT `pages_name` FROM pages"); $pages = array(); while ($row = mysql_fetch_assoc($result)) < $pages[ ] = $row >return $pages; >;

$query — это тип не массив, а ссылка на результат, его еще надо последовательно извлечь.

А вообще используйте лучше mysqli или pdo.

Ответ написан более трёх лет назад
xFreake @xFreake Автор вопроса
while ($row = mysql_fetch_assoc($result)) <
$pages[ ] = $row;
> xFreake @xFreake Автор вопроса

Что с этим делать? Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\Users\Imperator\Desktop\OpenServer\domains\localhost\includes\controller.php on line 24

while ($row = mysql_fetch_assoc($query)) <
$pages[ ] = $row;
> xFreake @xFreake Автор вопроса

maximw: Array ( [0] => Array ( [pages_name] => ) [1] => Array ( [pages_name] => asdas ) [2] => Array ( [pages_name] => dasda получаю на выходе вот это

Ну да, все верно. А что вы хотели получить?
xFreake @xFreake Автор вопроса
maximw: только pages_name из всех массивов
Тогда это не print_r(), а надо обрабаывать этот массив, так как вам надо.
xFreake @xFreake Автор вопроса
maximw: подскажете как?)
Ок, только сформулируйте что именно вы ходите на выходе получить, в каком виде.
xFreake @xFreake Автор вопроса
maximw: Я хочу получить на выходе название всех pages_name

$pageNames = array();
foreach($pages as $page) $pageNames[] = $page[‘pages_name’];
>
print_r($pageNames);

xFreake @xFreake Автор вопроса

maximw: должно получиться так правильно?

$query = mysql_query(«SELECT `pages_name` FROM pages»);

$pageNames = array();
foreach($pages as $page) $pageNames[] = $page[‘pages_name’];
>
print_r($pageNames);
return $pageNames;
>;
>;

Нет. Это надо вставить вместо вызова print_r() который вам не понравился.
xFreake @xFreake Автор вопроса

$query = mysql_query(«SELECT `pages_name` FROM pages»);

$pages = array();
while ($row = mysql_fetch_assoc($query)) $pages[ ] = $row;
$pageNames = array();
foreach($pages as $page ) $pageNames = $page[‘pages_name’];
>

>
return $pages;
>;
Вот так вышло Array ( [0] => Array ( [pages_name] => asdas ) [1] => Array ( [pages_name] => dasda ) )

xFreake @xFreake Автор вопроса

Array ( [0] => asdas [1] => dasda ) Я понял вас

Как вызвать функцию в php из другого файла

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Помог: 3 раз(а)

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Цитата:

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *