Помогите запихать в код переменную!

Paulie
На сайте с 27.12.2007
Offline
36
497

Здравствуйте друзья!

Возникла такая неприятность, у меня на сайте используется код - обращаемся к txt файлу, считаем кол-во строк и выводим нужную. вот он:

function title () {
$base_title = dirname(__FILE__).'/base_title.txt';
$file_title=file("$base_title");
$page_id=20;
$text=$file_title[$page_id];
return $text;}

И таких функций схожих много (3 файла - 3 функции). нужно как то задавать переменную $page_id, ну тоесть написать например

$page_id=$n;

Просто например так вот:


$n=20;

function title () {
$base_title = dirname(__FILE__).'/base_title.txt';
$file_title=file("$base_title");
$page_id=$n;
$text=$file_title[$page_id];
return $text;}

function name () {
$base_name = dirname(__FILE__).'/base_name.txt';
$file_name=file("$base_name");
$page_id=$n;
$text=$file_name[$page_id];
return $text;}

не пашет :(

И хотелось бы все функции в отдельный файл пихнуть, а в странице просто написать:

$n=20;
require_once($_SERVER['DOCUMENT_ROOT'].'/страница_с_функциями.php');

И чтобы это пахало:)

Подскажите плиз как надо, буду оч благодарен :)

ЗЫ: Надеюсь не оч загрузил :D

Разработка Landing Page (http://gridly.ru) с индивидуальным дизайном и возможностью редактирования контента от 10.000 руб. - http://gridly.ru (http://gridly.ru)
[Удален]
#1


$n = 20;
function title()
{
GLOBAL $n;
// творим, что нужно с переменной $n
}
Paulie
На сайте с 27.12.2007
Offline
36
#2

О, супер, спасибо огроменное! Работает!!

DI
На сайте с 03.01.2007
Offline
123
#3

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

function title ($n) {
...
}
function name ($n) {
...
}

и никаких GLOBAL

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
Paulie
На сайте с 27.12.2007
Offline
36
#4

Тож пашет :) Да, пожалуй так будет лучше... и вам спасибо :)

[Удален]
#5
DenIT:
чтобы не засорять глобальное пространство имен, и не перебить случайно внешнюю переменную

Ну из $n свалка не получится, а чтобы не перебивать нужно просто иметь не кривые руки, хотя я с Вами согласен - сам не люблю GLOBAL пользоваться. Если логика функции подразумевает использование аргумента то. несомненно, нужно передавать $n В качестве аргумента, если же логика функции этого не допускает или является противоречивой, то использование GLOBAL вполне оправдано.

У меня используется в проектах в основном одна единственная глобальная переменная $con (результат mysql_connect), т.е. в функции, использующие базу, я обычно не передаю $con, т.к., согласитесь, функция, выводящая записи (например, show_customers_orders()) по-логике нуждается в самом customer'е (его ай ди, например), но не в параметрах коннекта, поэтому я пиши что то вроде


function show_customers_orders($customer_id)
{
GLOBAL $con;
$q = "SELECT * FROM `customer_orders` WHERE customer_id = $customer_id";
$res_Q = mysql_query($q, $con);
$r = mysql_fetch_array($res_Q);
}
DI
На сайте с 03.01.2007
Offline
123
#6

насчет коннекта не спорю, сам его через GLOBAL часто использую. Тут же в контексте темы идет речь явно об идентификаторе страницы, поэтому оптимально передавать аргументом. Ну а насчет

So1:
чтобы не перебивать нужно просто иметь не кривые руки

- я не обвиняю ТС в кривизне рук, но с таким уровнем понимания областей видимости и передачи переменных - переменная $n имеет очень много шансов быть убитой:)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий