请问,类名和对象名有讲究吗?

请问,类名和对象名有讲究吗?

如题

我在定义了一个名为Message的类,然后定义了一个$message对象,再使用到某些方法时,出现 non-object错误,调试了老半天,发现将对象命名成 $myMessage 就不会出现错误了

我觉得很奇怪,$message 和 $myMessage 在本质上有什么区别吗?
开始我怀疑$message跟保留字冲突了,但想一下,既然PHP要求在变量名前加$,那变量不管取什么名字都不会与保留字冲突吧
如果是因为类名是Message与对象名$message冲突了,那也不合理啊,因为别的地方我也用到类名为subject对象名也为$subject,都没有报错

真是奇怪了!

<?php
class Message{
        function Message(){
                echo "Message<br />";
        }

        function Messages(){
                echo "Messages<br />";
        }
        function test($test){
                echo "${test}<br />";
        }
        function MyMessage(){
                $this->test("Fine!");// or $self::test("Fine!");
        }

}
$Message = new Message;
$Message->Messages();
$Message->MyMessage();
?>
没有错误呀!
这样是可以的.
专业写正则……

<?php
        class Message{
                static $Message = "Hello!" ;
                        function Message(){
                                        printf ("%s<br />","Message A");
                        }

                        function Messages(){
                                        printf ("%s<br />","Message B");
                        }
                        function test($test){
                                        printf ("%s<br />","${test} C");
                        }
                        function MyMessage(){
                                        $this->test("Fine!");// or $self::test("Fine!");
                        }

        }
$Message = "World!";
printf ("%s <br /> %s  <br />",Message::$Message,$Message);
$Message = new Message;
$Message->Messages();
$Message->MyMessage();
printf ("%s<br />",$Message->Message);
?>
我在PHP Version 5.1.2
还是没错误呀!

[ 本帖最后由 MoXie 于 2006-8-23 02:11 编辑 ]
专业写正则……