2012-04-06 149 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' "); 
    
        } 
    

    }