Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php oop-在子/继承函数中使用父参数_Php_Oop_Inheritance - Fatal编程技术网

Php oop-在子/继承函数中使用父参数

Php oop-在子/继承函数中使用父参数,php,oop,inheritance,Php,Oop,Inheritance,我有以下脚本: <?php class A { protected static $aliases = []; public static function doSomething() { foreach (self::$aliases as $column => $alias) { // do something echo "$column: $alias" . PHP_EOL;

我有以下脚本:

<?php
class A {
    protected static $aliases = [];

    public static function doSomething()
    {
        foreach (self::$aliases as $column => $alias) {
           // do something
           echo "$column: $alias" . PHP_EOL;
        }
    }
}
class B extends A {
    protected static $aliases = [
        'id' => 'real_id',
        'name' => 'real_name',
    ];
}

$obj = B::doSomething(); // does nothing

您需要将
self::$aliases
更改为
静态::$aliases
,以引用
A
B
的别名

请看这里:


尝试使用static访问子属性,如下所示

public static function doSomething()
{
    foreach (static::$aliases as $column => $alias) {
       // do something
       echo "$column: $alias" . PHP_EOL;
    }
}

查看更好的参考资料

此问题是否回答了您的问题?完美的谢谢你的回答。
public static function doSomething()
{
    foreach (static::$aliases as $column => $alias) {
       // do something
       echo "$column: $alias" . PHP_EOL;
    }
}