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";
上一篇下一篇

猜你喜欢

热点阅读