2012-04-06 4 views
1

Я сталкиваюсь с некоторыми проблемами при попытке передать значение переменных PHP через функции, каждый раз, когда я пытаюсь использовать переменную внутри одной из моих функций, ее значение становится нулевым, позвольте мне быть более конкретным. У меня есть следующий код в моем PHP файл:Передача переменных PHP через функции?

$myvar = $Session['username']; 

function updateuserinformation(){ 

     if(trim($_FILES["fileUpload"]["tmp_name"]) != ""){ 

      $images = $_FILES["fileUpload"]["tmp_name"]; 
      $new_images = "thumbnails_".$_FILES["fileUpload"]["name"]; 
      copy($_FILES["fileUpload"]["tmp_name"],"Photos/".$_FILES["fileUpload"]["name"]); 
      $width=200; //*** Fix Width & Heigh (Autu caculate) ***// 
      $size=GetimageSize($images); 
      $height=round($width*$size[1]/$size[0]); 
      $images_orig = ImageCreateFromJPEG($images); 
      $photoX = ImagesX($images_orig); 
      $photoY = ImagesY($images_orig); 
      $images_fin = ImageCreateTrueColor($width, $height); 
      ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
      ImageJPEG($images_fin,"Photos/".$new_images); 
      ImageDestroy($images_orig); 
      ImageDestroy($images_fin); 

      print $data["foo"]; 

      echo"$myvar"; 

      mysql_query("UPDATE users SET userpictureaddress = 'http://www.litsdevelopment.com/litsapplication/userimages/MATEUS' WHERE username = 'Mateus' "); 

     } 
} 

Я пытаюсь использовать значение MYVAR $ в моей функции, но каждый раз, когда я запускаю код он просто не работает, я уже пробовал глобальные, глобал, массивы и сессию для ничего не работали .Когда я делаю небольшую ошибку в какой-то части, но кто-нибудь знает, как правильно это сделать?

+0

Uhm ... Не стоит '$ myvar = $ Session ['username'];' be '$ myvar = $ _SESSION ['username'];'? – stealthyninja

ответ

2

Если вы хотите понять, как переменная сфера работает в PHP прочитать:

http://php.net/manual/en/language.variables.scope.php

$myvar = $Session['username']; 

function updateuserinformation(){ 
    global $myvar; 

     if(trim($_FILES["fileUpload"]["tmp_name"]) != ""){ 

      $images = $_FILES["fileUpload"]["tmp_name"]; 
      $new_images = "thumbnails_".$_FILES["fileUpload"]["name"]; 
      copy($_FILES["fileUpload"]["tmp_name"],"Photos/".$_FILES["fileUpload"]["name"]); 
      $width=200; //*** Fix Width & Heigh (Autu caculate) ***// 
      $size=GetimageSize($images); 
      $height=round($width*$size[1]/$size[0]); 
      $images_orig = ImageCreateFromJPEG($images); 
      $photoX = ImagesX($images_orig); 
      $photoY = ImagesY($images_orig); 
      $images_fin = ImageCreateTrueColor($width, $height); 
      ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
      ImageJPEG($images_fin,"Photos/".$new_images); 
      ImageDestroy($images_orig); 
      ImageDestroy($images_fin); 

      print $data["foo"]; 

      echo"$myvar"; 

      mysql_query("UPDATE users SET userpictureaddress = 'http://www.litsdevelopment.com/litsapplication/userimages/MATEUS' WHERE username = 'Mateus' "); 

     } 
} 

Но @JohnConde указывает, это выглядит, как вы на самом деле означает $ _SESSION, если вы пытаетесь читать с сессии.

1

Вам нужно либо передать переменную функции, либо объявить внутри функции, что она является глобальной.

E.g.

function updateuserinformation($myvar){ 

или

global $myvar; 
echo $myvar; 

Кроме того, до доступа к работе с переменными сессии, вам нужно вызвать session_start().

+0

i'vr попробовал его. Можете ли вы предоставить какой-то код, я тоже искал в Интернете, и это не сработало! – Mateus

2
  1. Вы не звонили session_start()
  2. опечатка $_SESSION
  3. Вам необходимо пройти все переменные, которые будут использоваться в функции в качестве параметра, если вы хотите использовать их в функции и следовать рекомендациям

    session_start(); 
    $myvar = $_SESSION['username']; 
    
    function updateuserinformation($myvar){ 
    
        if(trim($_FILES["fileUpload"]["tmp_name"]) != ""){ 
    
         $images = $_FILES["fileUpload"]["tmp_name"]; 
         $new_images = "thumbnails_".$_FILES["fileUpload"]["name"]; 
         copy($_FILES["fileUpload"]["tmp_name"],"Photos/".$_FILES["fileUpload"]["name"]); 
         $width=200; //*** Fix Width & Heigh (Autu caculate) ***// 
         $size=GetimageSize($images); 
         $height=round($width*$size[1]/$size[0]); 
         $images_orig = ImageCreateFromJPEG($images); 
         $photoX = ImagesX($images_orig); 
         $photoY = ImagesY($images_orig); 
         $images_fin = ImageCreateTrueColor($width, $height); 
         ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
         ImageJPEG($images_fin,"Photos/".$new_images); 
         ImageDestroy($images_orig); 
         ImageDestroy($images_fin); 
    
         print $data["foo"]; 
    
         echo"$myvar"; 
    
         mysql_query("UPDATE users SET userpictureaddress = 'http://www.litsdevelopment.com/litsapplication/userimages/MATEUS' WHERE username = 'Mateus' "); 
    
        } 
    

    }

Смежные вопросы