0x03 - PHP 中的深浅拷贝和作用域
2017-09-05 本文已影响22人
游城十代2dai
一张图了却天下事:
示例在 PHP 中的取地址符号 & 做的这个操作叫做引用, 其实就是我们 OC 中的深拷贝
代码部分为下列:
$var1 = 'php';
$var2 = $var1;
echo "var1: $var1, var2: $var2";
echo "<hr />";
// 这是一个浅拷贝, 只是拷贝了值
$var2 = 'html';
echo "new var1: $var1, new var2: $var2"."\t这是一个浅拷贝, 只是拷贝了值";
echo "<hr color=red />";
$var3 = &$var1;
echo "var1: $var1, var3: $var3";
echo "<hr />";
// 这是一个深拷贝, 连同地址一起拷贝
$var3 = 'html';
echo "new var1: $var1, new var3: $var3"."\t这是一个深拷贝, 连同地址一起拷贝";
echo "<hr color=green />";
echo "<br />可变变量: <br />";
$$var2 = 'objc';
echo '$html: '.$html;
echo "<hr />";
echo '$$var2: '.$$var2;
echo "<hr /><br /> ";
echo "以上所有变量都是<h4>全局变量</h4>";
echo "<hr /><br /> ";
$siteName = '我是全局变量';
function getSiteName()
{
$siteName = '我是局部变量'.'�siteName';
return $siteName;
}
echo $siteName.'siteName';
echo "<hr />";
echo getSiteName();
echo "<pre></pre>";
// print_r($GLOBALS);
echo '可以在函数中使用 $GLOBALS[\'html\'] 的方式取到全局变量 '.$GLOBALS['html'];
echo "<pre>";
// print_r ($_SERVER);
echo "</pre>";
echo "<pre>";
print_r ($_POST);
echo "</pre>";
$heredoc = <<<"FORM"
<form action="" method="post">
<label for="name">姓名</label>
<input type="name" name="name" value="" id = "name">
<label for="pwd">密码</label>
<input type="password" name="pwd" value="" id = "pwd">
<input type="submit" name="" value="提交">
</form>
FORM;
echo "$heredoc";