2012-04-06 151 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

嗯...不應該'$ myvar = $ Session ['username'];'是'$ myvar = $ _SESSION ['username'];'? – stealthyninja 2012-04-06 23:25:27

回答

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 2012-04-06 23:21:31

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' "); 
    
        } 
    

    }