php 可变变量、可变函数、可变类名

1.可变变量:

<?php
$a = 'hello';
$$a = 'world';

echo $$a . '<br />';
echo "$a ${$a} <br />";
// 以下写法更准确并且会输出同样的结果
echo "$a $hello";

// 要将可变变量用于数组,必须解决一个模棱两可的问题。
// 这就是当写下$$a[1]时,解析器需要知道是想要$a[1]作为一个变量呢,还是想要$$a作为一个变量并取出该变量中索引为 [1] 的值。
// 解决此问题的语法是,对第一种情况用${$a[1]},对第二种情况用${$a}[1]。

2.可变函数:

<?php
function foo() {
    echo "In foo()<br />";
}

function bar($arg = '') {
    echo "In bar(); argument was '$arg'.<br />";
}

$func = 'foo';
$func();        // This calls foo()

$func = 'bar';
$func('test');  // This calls bar()


// 还可以利用可变函数的特性来调用一个对象的方法
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // This calls the Bar() method
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();   // This calls $foo->Variable()

3.可变类名(PHP 5.3.0之后):

<?php
class MyClass
{
    const constant = 'constant value';

    private $context = 'my test';

    static public function showConstant() {
        echo  self::constant . "<br />";
    }

    public function showField() {
        echo $this->context ;
    }
}

echo MyClass::constant . "<br />";

$classname = "MyClass";
echo $classname::constant . "<br />"; // 调用常量

$classname::showConstant(); // 调用静态方法

$object = new $classname; // 创建对象
$object->showField();

转载于:https://my.oschina.net/banbo/blog/465663

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值