2015-10-15 42 views
-1

我有一个php代码的问题。 我跑ClassB.php并显示此错误:可以在函数之外创建一个对象以在所有函数中使用它?

解析错误:语法错误,意外'$对象(T_VARIABLE),预计功能(T_FUNCTION)

这是可能的功能使用之外创建一个对象它在所有功能?

文件 “ClassA.php”,这是代码:

<?php 
class ClassA 
{ 

} 
?> 

文件 “ClassB.php”,这是代码:

<?php 
require ('ClaseA.php'); 
class ClassB 
{ 
    $object = new ClassA(); 

    public function funa() 
    { 
    } 
    public function funb() 
    { 
    } 
} 
?> 
+1

做构造 – Federkun

+0

你好费德里科里面,我这样做是在构造函数中,但它不是在其他功能 –

回答

0

把它放在里面的构造和使用对象语法指派方式:

public __construct() { 
    $this->object = new ClassA(); 
} 
+0

它的工作原理,但是,当我尝试创建一个ClassB的对象调用函数识别,它显示了一个错误: <?php require('ClassA.php'); 类ClassB的 { \t公共函数__construct() \t { \t \t $这 - > $对象=新ClassA的(); \t} \t public function funa() { \t $ object-> setName(“david”); () } public function funb() { \t echo $ object-> getName(); } } $ object2 = new ClassB(); $ object2-> funa(); $ object2-> funb(); ?> 错误:未定义的变量:对象 对不起,对于这个帖子im新。 –

+0

它应该是'$ this-> object',而不是'$ this - > $ object'。这是基本的PHP OO语法。 – Barmar

+0

而在'funa()'它应该是'$ this-> object-> setName();'。无论何时你想访问一个类属性,你都必须使用' - >'语法。 – Barmar

0

可以使用var或声明变量(尽管你不需要)。初始化通常发生在构造函数中,但您也可以在声明中用一个常量初始化它。

<?php 
require ('ClassA.php'); 
class ClassB 
{ 
    public $object = null; 

    public function __construct() { 
     $this->object = new ClassA(); 
    } 

    public function funa() 
    { 
    } 
    public function funb() 
    { 
    } 
} 
?> 
0

您可以在构造函数中定义对象并将其分配给ClassB属性。然后在任何ClassB函数中访问该属性。

<?php 
require ('ClassA.php'); // You have written ClaseA.php here 
class ClassB 
{ 
    public $object = null; 

    public function __construct() { 
     $this->object = new ClassA(); 
    } 

    public function funa() 
    { 
     var_dump($this->object); // I can access ClassA Object here 
    } 
    public function funb() 
    { 
     var_dump($this->object); // I can access ClassA Object here too 
    } 
} 

$obj = new ClassB(); 
$obj->funa(); 
?> 
相关问题