Php 如果对象在同一类中实例化,则可以公开调用私有函数
为什么$y->PrivateBar();不抛出错误?这毕竟是一个私人的功能 这背后的面向对象设计逻辑是什么?这是PHP独有的还是标准的OOP 实际上,您正在调用类中的私有方法,以便它不会抛出错误 如果你在课堂外做同样的事情,它会抛出错误 为什么$y->PrivateBar();不扔 错误?这是一项私人活动 毕竟 私有函数在类内部使用时不会抛出错误,在类外部访问时会抛出错误 什么是面向对象设计 这背后的逻辑?这是唯一的吗 PHP,还是这是标准的OOPPhp 如果对象在同一类中实例化,则可以公开调用私有函数,php,oop,Php,Oop,为什么$y->PrivateBar();不抛出错误?这毕竟是一个私人的功能 这背后的面向对象设计逻辑是什么?这是PHP独有的还是标准的OOP 实际上,您正在调用类中的私有方法,以便它不会抛出错误 如果你在课堂外做同样的事情,它会抛出错误 为什么$y->PrivateBar();不扔 错误?这是一项私人活动 毕竟 私有函数在类内部使用时不会抛出错误,在类外部访问时会抛出错误 什么是面向对象设计 这背后的逻辑?这是唯一的吗 PHP,还是这是标准的OOP 它不是PHP独有的,是标准的OOP。因为Sta
它不是PHP独有的,是标准的OOP。因为StaticFoo虽然是静态的,但仍然被认为是示例类的一部分 这也可以在C#中复制: 对于输出:
public class Sample
{
private void PrivateBar()
{
Console.WriteLine("private called\r\n");
}
public static void StaticFoo()
{
Console.WriteLine("static called\r\n");
Sample y = new Sample();
y.PrivateBar();
}
}
class Program
{
static void Main(string[] args)
{
Sample.StaticFoo();
Console.Read();
}
}
$this在静态函数中为null。
"static called
private called"
public class Sample
{
private void PrivateBar()
{
Console.WriteLine("private called\r\n");
}
public static void StaticFoo()
{
Console.WriteLine("static called\r\n");
Sample y = new Sample();
y.PrivateBar();
}
}
class Program
{
static void Main(string[] args)
{
Sample.StaticFoo();
Console.Read();
}
}
static called
private called