$ obj ='classname'和$ obj = new classname()之间的区别是什么?

时间:2012-12-10 07:38:32

标签: php

嗨,各位朋友,请您澄清下面这段代码的不同之处:

<?php
class student {
    function stu() {
        echo "Hi Friends";
    }
}

//difference between this
$s = new student();
$s -> stu();

//and this
$s1 = 'student';
$s1 -> stu(); 

$s = new student();$s1 = 'student';

之间有何区别?

2 个答案:

答案 0 :(得分:4)

$s = new student();创建了一个新的类student实例,并将其存储到$s变量中。

$s1 = 'student';将字符串student存储到变量$s1中。最后一行$s1->stu();给出错误,因为你不能在字符串上调用方法。

我对你的建议是获得一本初学PHP书并阅读它,这样你就掌握了基础知识。

答案 1 :(得分:0)

你的意思是:

$instance = new myclass();

$type = 'myclass';
$instance = new $type;

如果这是你的意思,那就没有区别了。如果希望动态生成类名,则使用后者。