[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: include, или куда копать?
Страницы: 1, 2
Invis1ble
Цитата (boomber @ 30.09.2015 - 11:46)
Это?

наверное, тебе виднее, смотри по времени
если да - то смотри ответ от clocwerk выше

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

boomber
Цитата (clocwerk @ 30.09.2015 - 07:55)
Это значит что у тебя функция sortByPoints() уже есть и ты пытаешься определить еще одну фунцкию с таким же названием, возможно это из за 2х инклудов

Да, по времени это оно.
Но тогда, если я разобью файл на две функции, я все равно от этого не уйду.
А как-то можно завершить функцию, чтобы вызвать ее же еще раз?
boomber
Гуглопоиск по ошибке предложил такой вариант решения:
if (!function_exists('sortByPoints'))
{
function sortByPoints()
{
........
}
}

Все сработало и обе таблицы отобразились.
Но пока не понимаю принцип действия. Не скажется ли это на работе функции сортировки при инклюде второй таблицы?

Добавлено позже: беглая проверка показала, что сортировка работает нормально. В любом случае, теперь можно двигаться дальше, оптимизировать скрипт, убрать кучу лишних вещей из него.

Буду благодарен, если кто-то в двух словах объяснит, что дает эта проверка на существование функции?
Invis1ble
это неправильное решение
у тебя ошибка на уровне архитектуры, функция должна инклудится единожды

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

boomber
Цитата (Invis1ble @ 30.09.2015 - 09:56)
это неправильное решение
у тебя ошибка на уровне архитектуры, функция должна инклудится единожды

Я хочу в итоге разбить файл на три части: непосредственно функция сортировки; сбор и подсчет статистики; вывод в таблицу. Нужно это для того, чтобы при изменениях в регламентах соревнований я оперативно мог бы менять свойства сортировки. И вид таблицы. Тогда я буду функцию инклюдить один раз и вызывать ее для нужного количества разных таблиц. А сейчас у меня получается, если таблиц несколько, происходит несколько инклюдов и функции.
clocwerk
Цитата
Но тогда, если я разобью файл на две функции, я все равно от этого не уйду.


Почему не уйдешь, ты делаешь один единственный include_once в начале файла, и потом просто вызываешь функцию которая отображает таблицу, столько раз сколько тебе нужно, тебе не нужно делать инклуды несколько раз.

к примеру твой файл

<?php 
include_once(functions.php);
?>

//Какой то html код

//Вызываем функцию которая создает таблицу


<?php expample($tourn, $group /*И т.д. какие ты там перенные используешь*/); ?>

//Далее опять какой нибудь html
// И вот тебе нужно сформаровать 2 таблицу, ты изменяешь значения переменных $tourn,
//$group и снова вызываешь функцию example


<?php example($tourn, $group); ?>




Вот и все, зачем инклудить много раз?

А функция сортировки у тебя тоже один раз все обьявляется в файле с функциями, и вызывается в функции example

Цитата
Гуглопоиск по ошибке предложил такой вариант решения:
if (!function_exists('sortByPoints'))
{
    function sortByPoints()
    {
    ........
    }
}


Проверка на существование функции - ты проверяешь есть у тебя уже такая функция, если нету, то функция создается, если есть то соответственно не создается, проще наверно нельзя обьяснить
boomber
Цитата (clocwerk @ 30.09.2015 - 10:11)
Проверка на существование функции - ты проверяешь есть у тебя уже такая функция, если нету, то функция создается, если есть то соответственно не создается, проще наверно нельзя обьяснить

Не, я понял, что происходит проверка на существование функции.
Мне непонятно вот что: В итоге второй проверки, скрипт видит, что функция есть, но при вызове он же ее все равно обрабатывает с новыми данными. Вот это мне немного непонятно.
Но это все от недостатка знаний ))

Насчет функций, я понял. При переработке скрипта учту. Спасибо.
clocwerk
Цитата
В итоге второй проверки, скрипт видит, что функция есть, но при вызове он же ее все равно обрабатывает с новыми данными


Все верно у тебя же уже изменились переменные $a и $b которые ты передаешь в функцию, т.е. функция создается один раз а вызывается сколько угодно раз
boomber
В любом случае, спасибо за помощь!
Это дает некоторый стимул в развитии.
boomber
Цитата (clocwerk @ 30.09.2015 - 10:11)
//Вызываем функцию которая создает таблицу

<?php expample($tourn, $group /*И т.д. какие ты там перенные используешь*/); ?>

Вот здесь у меня случился затык.
Завернул в функцию сбор статистики:
function stat($tourn, $group, $sport, $year)
{

$points='SELECT home, away, home_score, away_score,home_town,away_town FROM table WHERE tourn="'.$tourn.'" AND tourn_g="'.$group.'" AND sport ="'.$sport.'" AND year ="'.$year.'"';
.........

}

вызываю функцию:
stat($tourn,$group,$sport,$year);

ничего не происходит.
Ошибка выдается следующая: PHP Warning: stat() expects exactly 1 parameter, 4 given
Не могу понять, в чем ошибка? При определении функции я задал, что будет 4 входных параметра.

Если убираю оформление функции и просто инклюдю скрипт, то все работает.
boomber
Цитата (Invis1ble @ 29.10.2015 - 07:44)
https://secure.php.net/manual/ru/function.stat.php

Вот жеж!
Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.