>백엔드 개발 >PHP 튜토리얼 >안드로이드 프로그래머가 배우는 PHP 개발(4) - 변수 변수 변수 참조 - PhpStorm

안드로이드 프로그래머가 배우는 PHP 개발(4) - 변수 변수 변수 참조 - PhpStorm

黄舟
黄舟원래의
2017-03-02 09:54:37959검색

더 이상 텍스처가 없습니다. 인쇄 결과가 코드에 직접 작성되므로 텍스처보다 더 선명합니다.

<?php
    /**
     * 下面这4行,官方叫法,可变变量。
     * 我管它叫做,动态赋值变量名。
     * 只有在php里可以这么玩,因为在
     * php的变量名之前有$符。
     */
    $x = "a";
    $$x = "b";
    $$$x = "c";
    $$$$x = "d";

    echo $x; // 打印结果为a
    echo "<br>";
    echo $$x; // 打印结果为b
    echo "<br>";
    echo $$$x; // 打印结果为c
    echo "<br>";
    echo $$$$x; // 打印结果为d
    echo "<br>";
    echo $x; // 打印结果为a
    echo "<br>";
    echo $a; // 打印结果为b
    echo "<br>";
    echo $b; // 打印结果为c
    echo "<br>";
    echo $c; // 打印结果为d
    echo "<br>";
    /**不能打印$d,因为没有这个变量*/

    /**
     * 下面为变量引用
     */
    $m = 10;
    $n = 20;
    $y = &$m; // y引用m的值,等于说,y是m的别名
    echo $y; // 打印结果为10
    echo "<br>";
    $m = $n;
    echo $y; // 打印结果为20
    echo "<br>";

    /**
     * 变量引用1:
     * 如果引用的变量被释放,
     * 则保留释放前的值
     */
    unset($m); // 释放给定的变量

    if (isset($y)){ // 这个变量存在
        echo "这个变量存在"; // m被释放,但是y保存m释放前的值
        echo "<br>";
        echo $y; // 打印结果为20
        echo "<br>";
    }else{
        echo "这个变量不存在";
    }

    if (isset($m)){ // 这个变量不存在
        echo "这个变量存在";
    }else{
        echo "这个变量不存在"; // m被释放 所以不存在
        echo "<br>";
    }

    /**
     * 变量引用2:
     * 引用第二个变量,会自动解除与第一个变量的引用关系
     */
    $p = 66;
    $q = &$p; // q引用p的值,等于说,q是p的别名
    echo $q; // 打印结果为66
    echo "<br>";

    $r = 77;
    $q = &$r; // q引用r的值,等于说,q是r的别名
    echo $q; // 打印结果为66
    echo "<br>";

    $q = 88; // 我们改变q的值,看一下p、r会不会变化
    echo $p; // 打印结果为66,p没有变化,说明q和p解除了引用关系
    echo "<br>";
    echo $r; // 打印结果为88,r变成了q的值,说明q和r形成新的引用关系
    echo "<br>";

위는 PHP 개발을 배우는 안드로이드 프로그래머의 내용입니다(4) - 변수 변수 참조 - PhpStorm. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요. )!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.