[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вопрос про include
Strannik
Здравствуйте.
есть 2 файла
1) 1.inc
<?php
$name="Alex";
?>


2) index.php
<?php
include("1.inc");
function name($id)
{
......
//в результате функции получаем название переменной
echo $name_id;
//$name_id в данном случае будет содержать значение '$name'
}
// в результате

name('243');
//выводит $name, а нужно чтобы выводило Alex, т.е. бралось значение из 1.inc
?>


Подскажите чем ошибка и как ее исправить?



Спустя 4 минуты, 56 секунд (24.07.2011 - 09:47) ADiel написал(а):
names.inc
<?php
$names = array(
1=>"Alex",
2=>"Max",
);


?>


index.php
<?php
include("names.inc");
function name($id){
global $names;

return $names[$id];

}

echo name(1);



echo $name_id;
//$name_id в данном случае будет содержать значение '$name'
не будет содержать данных вовсе

Спустя 6 минут, 9 секунд (24.07.2011 - 09:54) Invis1ble написал(а):
Цитата
echo $name_id;
//$name_id в данном случае будет содержать значение '$name'

не будет
$name_id не проинициализирована, поэтому будет ошибка уровня warning, а $name находится вообще в глобальном пространстве имен и в функцию не попадает

Спустя 15 минут, 53 секунды (24.07.2011 - 10:09) ADiel написал(а):
Да, вот только похоже, что автор скрыл часть функции от нас. Или я ошибаюсь?

Спустя 3 минуты, 26 секунд (24.07.2011 - 10:13) Invis1ble написал(а):
Возможно скрыл. Если да, то зря )

Спустя 35 минут, 54 секунды (24.07.2011 - 10:49) Nikitian написал(а):
1) 1.inc

<?php
return"Alex";
?>



2) index.php

<?php
function
name($id)
{
......
//в результате функции получаем название переменной
$name_id = include("1.inc");
echo $name_id;
//$name_id в данном случае будет содержать значение '$name'
}
// в результате

name('243');
//выводит $name, а нужно чтобы выводило Alex, т.е. бралось значение из 1.inc
?>

Спустя 37 секунд (24.07.2011 - 10:49) ADiel написал(а):
Что за бред?

Спустя 3 минуты, 58 секунд (24.07.2011 - 10:53) Invis1ble написал(а):
ADiel
это не бред, а нормальное решение без засорения глобального пространства

Спустя 4 минуты, 32 секунды (24.07.2011 - 10:58) ADiel написал(а):
Создавать файл ради
<?php
return"Alex";
?>


?

Спустя 1 минута, 33 секунды (24.07.2011 - 10:59) Strannik написал(а):
скрыл, код большой. если в кратце то:

index.php
<?php require_once('include/rusian.inc'); 
require_once('include/func.php');
.............................

topic($pages,$topic);
............................

?>


func.php
function com_cat_name($idn)
{
............
$result0=mysql_query($sql0) or die (mysql_error());
$ids=mysql_fetch_assoc($result0);
$thema_name=$ids["category"];
if (!$result0){echo "#";}else{echo "$thema_name";}
}


function topic($getpage,$topic)
{
$FORUM ="Ссылка1";
?>
<div id="BreadCrumbTrail_BreadcrumbsContainer" class="site-breadcrumbs">

.............

<
a href="index.php?type=forum" class="umenu_left_link"><?php echo $FORUM;?>-></a> [b]<?php com_cat_name($topic);?>[/b]
</
div>
................

<?php
}
......
?>


Как результат index.php выдает
Ссылка1->$CATEGORY, где по логике после -> должно выводиться значение $CATEGORY из файла russian.inc

P.S.: был бы бред если бы не подключалось несколько языков и переменных в файле russian.inc было бы меньше нескольких сотен...

Спустя 57 секунд (24.07.2011 - 11:00) Invis1ble написал(а):
ADiel
таким образом, например, могут подключаться конфиги:
return array(
'var1' => 'val1',
'var2' => 'val2'
);

но в данном случае, да. оно не нужно, имхо.

Спустя 10 минут, 40 секунд (24.07.2011 - 11:11) ADiel написал(а):
Думаю, что мультиязычность лучше делать как то иначе

Спустя 1 минута, 37 секунд (24.07.2011 - 11:13) Strannik написал(а):
это самое простое что пришло мне голову(про мультиязычность с помощью подключения яз файла) но переделывать весь сайт ради 10 строчек кода.... сами понимаете...

Спустя 18 минут, 18 секунд (24.07.2011 - 11:31) ADiel написал(а):
Да, конечно, но можно сделать что то типа echo Russian::getVar("var_name");
И подключать класс с помощью __autoload

Например
class Russian
{

public function getVar($name) {
----
}

}

Спустя 17 минут, 19 секунд (24.07.2011 - 11:48) Strannik написал(а):
мои познания этого не коснулись). но суть вопроса все-таки не в этом...
Быстрый ответ:

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