【发布时间】:2012-08-31 02:39:00
【问题描述】:
我在 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();
}
}
?>
当我尝试使用 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 的修饰符?
【问题讨论】:
-
这在你的情况下甚至没有意义,因为你不在命名空间中。
-
不知道为什么有人反对这个问题,因为它完全有效。赞成它。
-
@Bgi:
not in a namespace是什么意思? -
@Crazenezz 他的意思是
public而不是...private?在那种情况下,私有对什么?唯一想到的是命名空间的private/public。但是 PHP 没有命名空间的可见性修饰符。 -
@Crazenezz deceze 解释得比我好;)
标签: php oop access-modifiers