美文网首页
0x03 - PHP 中的深浅拷贝和作用域

0x03 - PHP 中的深浅拷贝和作用域

作者: 游城十代2dai | 来源:发表于2017-09-05 15:35 被阅读22次

    一张图了却天下事:

    示例

    在 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";
    

    相关文章

      网友评论

          本文标题:0x03 - PHP 中的深浅拷贝和作用域

          本文链接:https://www.haomeiwen.com/subject/wtnujxtx.html