есть 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
index.php
echo $name_id;
//$name_id в данном случае будет содержать значение '$name'
не будет содержать данных вовсе
<?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
2) index.php
<?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
func.php
Как результат index.php выдает
Ссылка1->$CATEGORY, где по логике после -> должно выводиться значение $CATEGORY из файла russian.inc
P.S.: был бы бред если бы не подключалось несколько языков и переменных в файле russian.inc было бы меньше нескольких сотен...
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
Например
И подключать класс с помощью __autoload
Например
class Russian
{
public function getVar($name) {
----
}
}
Спустя 17 минут, 19 секунд (24.07.2011 - 11:48) Strannik написал(а):
мои познания этого не коснулись). но суть вопроса все-таки не в этом...