Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переменная не передаётся в функцию
 
 автор: GooD   (02.01.2006 в 15:13)   письмо автору
 
 

блин..не передаётся не функция, а переменная

здравствуйте, у меня немного глупый вопрос..но он всё же возник, при входе администратора на сайт ставлю $admin = true, в в одной из функций: if ($admin){echo "abc";} else{echo "123";}, он почему-то выводит мне то, что идёт в else(123), при echo $admin; - не выводит ничего, хотя должен единичку..помогите, кто может :)

   
 
 автор: cheops   (02.01.2006 в 15:32)   письмо автору
 
   для: GooD   (02.01.2006 в 15:13)
 

А переменная $admin передаётся через параметры функции?

   
 
 автор: GooD   (02.01.2006 в 15:46)   письмо автору
 
   для: cheops   (02.01.2006 в 15:32)
 

да, я же написал, если я это передаю не функцией, а просто иклюдом, то всё хорошо работает

   
 
 автор: cheops   (02.01.2006 в 16:06)   письмо автору
 
   для: GooD   (02.01.2006 в 15:46)
 

Не понятно передаётся переменная $admin в функцию через параметры или нет - приведите весь код, если не сложно?

   
 
 автор: GooD   (02.01.2006 в 16:10)   письмо автору
 
   для: cheops   (02.01.2006 в 16:06)
 

вот место, где я задаю переменную

<?
 
if ($_SESSION['auth'] == true)
{
      
$admin true;

 switch (
$_GET["op"])
  {
    default:
     
do_header("$title :: Просмотр");
           
n_list();
    break;
  }    
}
?>


a вот та самая функция:

function do_header($t)
 {
?><html>
 <head>
<title><?=$t?></title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<link rel=stylesheet type=text/css href=style.css>
 </head>
<body leftmargin=0 rightmargin=0 topmargin=0 bottommargin=0 marginheight=0 marginwidth=0>
<table border=0 cellpadding=0 cellspacing=0 width=100% class=u height=60 valign=center align=center>
<td align=center valign=center><?if ($admin){echo"$title";} else {echo"Вход";}?></td>
</table>
<?
    
if ($admin)
    {
    echo    
"
    <table border=0 cellpadding=4 cellspacing=0 height=10 width=100% class=adm align=center>
     <td class=back align=right><a href=?op=add>Добавление</a></td>
     <td class=back align=left><a href=
$PHP_SELF>Просмотр</a></td>
     <td class=back align=left><b><a href=?act=logout>Выход</a></b></td>
    </table>
        "
;
    }
    else
    {
    echo    
"
    <table border=0 cellpadding=4 cellspacing=0 height=10 width=100% class=adm align=center>
     <td class=back align=center>&nbsp;</td>
    </table>
        "
;
    }
   echo 
"<br>";
?>
 }

   
 
 автор: cheops   (02.01.2006 в 16:16)   письмо автору
 
   для: GooD   (02.01.2006 в 16:10)
 

При таком определении функции, переменную $admin нельзя увидить внутри функции, поэтому она создаётся по новой со значением false. Необходимо либо добавить её в параметры функции
<?php
function do_header($t$admin
{
?>

и соответственно
<? 
if ($_SESSION['auth'] == true

      
$admin true

switch (
$_GET["op"]) 
  { 
    default: 
     
do_header("$title :: Просмотр"$admin); 
           
n_list(); 
    break; 
  }     

?>

либо объявить переменную $admin глобальной
<?php
function do_header($t

  global 
$admin;
?>

   
 
 автор: GooD   (02.01.2006 в 16:18)   письмо автору
 
   для: cheops   (02.01.2006 в 16:16)
 

спасибо, я думал об этом, однако, думал что можно как-то по-другому..раз нельзя - то так и сделаю

   
 
 автор: Artem S.   (02.01.2006 в 16:18)   письмо автору
 
   для: GooD   (02.01.2006 в 16:10)
 

$admin - это глабальная переменная.
Исправить ваш код можно так:
function do_header($t)
{
global $admin;
.......
или так
....
do_header("$title :: Просмотр", $admin);
function do_header($t, $admin)
{
.....

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования