|
|
|
| Посмотрите на этот код.
<?php
include('inc/config.php');
$query = mysql_query('SELECT * FROM table_name WHERE id = 1');
$array = mysql_fetch_array($query);
function func_name($var)
{
$a = $array[$var]; // здесь почему-то $a пустая, хотя я передал функции значение $var
if($a=="") $result = "Pusto"; // поэтому результатом становится "Пусто"
else $result = "Ne pusto";
return $result;
}
$var = "head";
$a = $array[$var]; // здесь же $a заполнена
if($a=="") $result2 = "Pusto";
else $result2 = "Ne pusto"; // а здесь результат - "Не пусто"
echo "simple>".$result2."<br>";
echo "func>"; echo func_name(head);
?>
|
Если вы поняли, то результаты должны быть одинаковыми (везде должно быть "Ne pusto"). Однако, мне выдаёт вот что:
simple>Ne pusto
func>Pusto
|
Не понимаю, везде ведь одинаковый алгоритм (и в функции и в простом способе), различается он лишь способом передачи $var...
Но функция не работает. Я уже часа 2 сижу и думаю, что здесь не так.
Помогите, люди! | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 00:14)
| | первой строчкой в ф-ии global $array | |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 00:28)
| | Не понял. Куда это вписать надо?
...
function func_name($var)
{
global $array;
$a = $array[$var]; // здесь почему-то $a пустая, хотя я передал функции значение $var
if($a=="") $result = "Pusto"; // поэтому...
...
|
Так? | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 00:43)
| | Или
function func_name($var)
{
return $GLOBALS[$var] ? "Pusto" : "Ne pusto";
}
|
| |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 00:46)
| | global $array сработало! Спасибо!
А что это значит, что сделала функция global? | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 00:49)
| | Функция (а вернее, конструкция) указывает, что на переменную надо смотреть как на глобальную (в коде программы), а не локальную (в коде функции объявленную) | |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 00:53)
| | Спасибо большое за помощь! | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 00:14)
| | ошибка у вас в этой строке
func_name(head);
и не надо здесь никаких глобальных переменных | |
|
|
|
|
|
|
|
для: KPETuH
(23.01.2008 в 06:00)
| | это ошибка некритичная но плохая
а глобал или глобалс надо | |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 10:22)
| | а да нужно, просто не думал что можно из такого простого кода навернуть таких сложностей, топикстартеру рекомендую пересмотреть код немного его сократив при этом :) | |
|
|
|
|
|
|
|
для: KPETuH
(23.01.2008 в 10:44)
| | Конечный код у меня совсем другой. И используются только функции.
И когда я попытался что-то сделать, у меня не выходило и я написал такой небольшой код для проверки работы функции.
ошибка у вас в этой строке
func_name(head);
и где здесь ошибка? написали бы... я же не телепат, ваши мысли читать :) | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 18:14)
| | что такое head | |
|
|
|
|
|
|
|
для: KPETuH
(23.01.2008 в 20:21)
| | Тоже самое, что и $var = "head"; | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 20:34)
| | а птоставьте строчкой выше
| |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 20:39)
| | а что это мне даст? | |
|
|
|
|
|
|
|
для: Freddie_X
(23.01.2008 в 22:37)
| | Это был намек на то, что параметр надо обрамить кавычками, а так он будет считаться за константу | |
|
|
|
|
|
|
|
для: bronenos
(23.01.2008 в 22:46)
| | Да и без кавычек работает хорошо :) | |
|
|
|
|
|
|
|
для: Freddie_X
(24.01.2008 в 10:13)
| | ну ну потом когда наступите на грабли поздно будет..... | |
|
|
|