<?php
$a = "asp";
$b =& $a;
echo "<br>".$b; // 此时$b = 'asp'
$a = "php";
echo "<br>".$b; // 此时$b = 'php'
?>
$a = "asp";
$b =& $a;
echo "<br>".$b; // 此时$b = 'asp'
$a = "php";
echo "<br>".$b; // 此时$b = 'php'
?>
其实在function里也常用到的function test($param1, &$param2) {
....
}看看手册 》》》 变量 》》》 基础 这一章吧
我是想写一个sql语句,先写好字段和值的表达式,到后面可能会改变值的变量的值,这样能实现吗??
定义global应该可以轻松的解决!
我试了你这种方法,好久都没有搞定,希望有高手现身!帮你顶!
global $a;
return "'".$a."'";
}
问题是我想做个保存数据的通用函数,然后将需要保存的数据作为参数传给该函数,这样就要改变传入的函数的sql语句中的值,我这样的设计是否正确?
在传入的参数中,已经有类似"'$var'"这样的变量,但我要更改它的值怎么才能实现?
如果实在不行,那只有在函数中来构建sql语句了,这样做比较麻烦。
我用eval试不出!
输出为
asp
asp
如果要变成
'asp'
'asp'很容易!
但是变成eval ("\$b = \""."'".&$a."'"."\";");
就出错!
$upfile = array
(
0 => array
(
"tmpfile" => $_FILES["file"]["tmp_name"]["spic"],
"name" => $_FILES["file"]["name"]["spic"],
"savename" => $filename,
"savepath" => $spic,
"fldname" => "spic",
),
1 => array
(
"tmpfile" => $_FILES["file"]["tmp_name"]["lpic"],
"name" => $_FILES["file"]["name"]["lpic"],
"savename" => $filename,
"savepath" => $lpic,
"fldname" => "lpic",
) );
// $pic 为用户上传的file的值
$addflds = "goono,catno,name,supno,buyno,spic,lpic,ctime";
$addvals = "'$goono','$catno','$name','$supno','$buyno','$spic','$lpic',now()";// 以下是函数内部的代码if(is_array($upfile))
{
for($i = 0; $i < count($upfile); $i++)
{
${$upfile[$i]["fldname"]} = $upfile[$i]["savepath"];
$fldvalue = SaveUpFile($upfile[$i]["tmpfile"],$upfile[$i]["name"],$upfile[$i]["savename"],$upfile[$i]["savepath"]);
${$upfile[$i]["fldname"]} .= "/".$fldvalue;
}
}$sqlstr = "insert into $table ";
$sqlstr .= "($addflds)";
$sqlstr .= " values ($addvals)";下面运行sql语句
$sqlstr = "insert into $table "; //即便你的目标表会改变
$sqlstr .= "($addflds)"; //目标字段也会改变吗?
$sqlstr .= " values ($addvals)";//数据总应该用“''”括起吧?
如:$addflds = "fld1,fld2"
$addvals = "'$val1','$val2'"
我是想更改$addvals 中的'$val1'的值。
如果$val1、$val2是需要动态修改的变量,那么要写作
$addvals = "'\$val1','\$val2'";
引用时写作
$sqlstr .= " values (".eval("return \"$addvals\";").")";
$addvals=str_replace(fld2,"'$val2'",$addvals);