不能在PHP类上使用公共修饰符


Cannot use public modifier on PHP class

我在Java方面有很强的基础知识,当谈到PHP时,我在OOP方面遇到了一些问题。

请看下面这两个类:

联系人.php

<?php 
    public class Contacts {
    }
?>

UnitTest.php

<?php
    require_once 'PHPUnit/Framework.php';
    include 'Contacts.php';
    class UnitTest extends PHPUnit_Framework_TestCase {
        public function testRead() {
            $temp = new Contacts();
        }
    }
?>

当我尝试使用phpunit测试UnitTest.php时,我得到了以下错误消息:

PHP Parse error:  syntax error, unexpected T_PUBLIC in
    /home/crazenezz/Projects/PHP/Demo/Class/Contacts.php on line 3

经过反复尝试,我去掉了Contacts类的public修饰符,测试成功了。

Contacts.php(删除public修饰符后)

<?php 
    class Contacts {
    }
?>

有人能解释为什么在PHP中我不能使用public作为class的修饰符吗

因为所有类在PHP中都是公共的。没有所谓的"私人课堂"。

在PHP中,您只能在变量和函数前面使用公共修饰符。在Java中,可以在类、构造函数、方法、变量或接口前面使用公共修饰符。为什么?因为语言不同。如果你需要注意提醒自己,我在这里写了一些东西来解释PHP修饰符和Java修饰符之间的区别,因为我也是在PHP之前学习Java的。http://www.siteconsortium.com/h/D0000G.php