小编Ton*_*Gee的帖子

为什么在调用父代的构造函数时会出现致命错误?

我正在扩展其中一个SPL(标准PHP库)类,我无法调用父的构造函数.这是我得到的错误:

致命错误:无法调用构造函数

以下是该SplQueue文档的链接:http://www.php.net/manual/en/class.splqueue.php

这是我的代码:

$queue = new Queue();

class Queue extends SplQueue {

    public function __construct() {
        echo 'before';
        parent::__construct();
        echo 'I have made it after the parent constructor call';
    }

}

exit;
Run Code Online (Sandbox Code Playgroud)

什么可以阻止我调用父的构造函数?

php oop spl constructor

28
推荐指数
2
解决办法
2万
查看次数

在PHP中,使用 - > dereferencer调用静态类函数是一个问题

我使用的是PHP 5.2

我有以下代码:

class MyClass {
    public function __construct() {}

    public static function stuff() {
        echo 'This is static! <br />';
    }

}

$myClass = new MyClass();

MyClass::stuff(); // Reference by class.

$myClass->stuff(); // Reference by instance of class.
Run Code Online (Sandbox Code Playgroud)

这两种情况下的输出都是输出:

这是静态的!

这是静态的!

使用第二种参考方式与第一种方式有问题吗?

由于我不允许具有与上述静态功能相同的非静态功能,因此不会出现问题.我希望函数是静态的,因为在使用静态函数时也会提高速度.

我是否遗漏了任何内容,或者这是唯一的问题,关于 - > dereference语法如何表明这是一个静态函数的语义?

php oop static-methods class dereference

6
推荐指数
1
解决办法
183
查看次数

PHP - 使用常量的值来引用数据成员

我试图通过使用常量来访问一个类对象的数据成员.我想知道这是否可能使用类似于我正在使用的语法?

当我尝试在以下脚本中执行此操作时,我收到此错误:解析错误:语法错误,意外T_PAAMAYIM_NEKUDOTAYIM

class Certificate {
    const BALANCE = 'cert_balance';

    public function __construct() {}

}

class Ticket {
    public $cert_balance = null;

    public function __construct()
    {
        $this->cert_balance = 'not a chance';
        echo $this->cert_balance."<br />";
    }
}

$cert = new Certificate();

$ticket = new Ticket();

// This next code line should be equal to: $ticket->cert_balance = 'nice'; 

$ticket->$cert::BALANCE = 'nice!';
Run Code Online (Sandbox Code Playgroud)

php class constants

4
推荐指数
1
解决办法
2209
查看次数

标签 统计

php ×3

class ×2

oop ×2

constants ×1

constructor ×1

dereference ×1

spl ×1

static-methods ×1