gpt4 book ai didi

php - 为什么 PHP 神奇的方法必须公开?

转载 作者:可可西里 更新时间:2023-11-01 13:56:17 26 4
gpt4 key购买 nike

我在我的 PHP 类中使用了魔法方法,但是当我尝试将它们设为私有(private)时,我收到警告:

WARN: The magic method __get() must have public visibility and cannot be static in ...

我不想在 Eclipse 自动完成中使用这些方法。 (也许是 phpdoc 的一种方式?)所以我的问题是,为什么这些方法必须公开?

最佳答案

因为您正在从类之外的范围调用方法。

例如:

// this can be any class with __get() and __set methods
$YourClass = new YourOverloadableClass();

// this is an overloaded property
$YourClass->overloaded = 'test';

上面的代码被“转换”为:

$YourClass->__set('overloaded', 'test');

稍后当您获得如下属性值时:

$var = $YourClass->overloaded;

此代码“转换”为:

$YourClass->__get('overloaded');

在每种情况下,魔术方法 __get__set 都是从类外部调用的,因此这些方法需要是 public .

关于php - 为什么 PHP 神奇的方法必须公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8231090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com