通过函数传递PHP变量?
问题描述:
我在尝试通过函数传递一个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的价值,但我每次运行它只是不工作的代码的时候,我已经尝试过全球性的,全局,努力白白阵列和会议。柯克斯我在其中的一些部分犯了一个小错误,但是任何人都知道什么是正确的方式来做到这一点?
答
如果您想了解在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,如果你想从会议中读取。
答
您需要将该变量传递给函数,或者在函数内声明它是全局函数。
E.g.
function updateuserinformation($myvar){
或
global $myvar;
echo $myvar;
此外,之前访问与会话变量的工作,你需要调用session_start()
。
+0
i'vr试过了。可以提供一些代码,我也在网上搜索过,它不起作用! – Mateus 2012-04-06 23:21:31
答
- 你没有打电话给
session_start()
- 你拼错
$_SESSION
-
你需要通过一个函数作为一个参数被使用的变量,如果你想在函数中使用它们,遵循最佳做法
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' "); }
}
嗯...不应该'$ myvar = $ Session ['username'];'是'$ myvar = $ _SESSION ['username'];'? – stealthyninja 2012-04-06 23:25:27