不能在PHP类上使用public修饰符

时间:2012-09-06 09:46:12

标签: php oop access-modifiers

我在Java中有非常强大的基础,当涉及到PHP时,我遇到了一些OOP问题。

请看下面这两个类:

Contacts.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();
        }
    }
?>

当我尝试使用UnitTest.php测试phpunit时出现此错误消息:

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

在反复试验后,我删除了publicContacts修饰符,测试成功而没有错误。

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

<?php 

    class Contacts {

    }
?>

任何人都可以解释为什么在PHP中我不能使用public作为class的修饰符?

2 个答案:

答案 0 :(得分:4)

因为PHP中的所有类都是公共的。没有“私人阶级”这样的东西。

答案 1 :(得分:0)

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