2015-05-12 4 views
-1

Я совершенно новый для php (переход из java). Есть два классаphp создать экземпляр другого класса

First.php

class First { 

    public function method(){ 
     #how to call second object like java 
     #$obj=new Second(); 
    } 
} 

Second.php

class Second{ 
    public function method_second(){ 
     echo 'second method'; 
    } 
} 

Мы не можем создать объект Second.php в First.php

+0

Да, не комментируйте код и смотрите. – AbraCadaver

+0

Конечно, можно. Код, который у вас есть, должен работать нормально. – ceejayoz

+1

Да, вы можете, если у вас есть 'include'd (или' require'd) Second.php или определен автозагрузчик. –

ответ

2

Вы должны включить файл Second.php в First.php, чтобы иметь доступ к Second класс:

<?php 
include "Second.php"; 
class First { 
    public function method(){ 
     #how to call second object like java 
     $obj=new Second(); 
    } 
} 

Также вы можете использовать автозагрузчика (не лучший пример :)):

<?php 
function __autoload($class_name) { 
    include $class_name . '.php'; 
} 

class First { 
    public function method(){ 
     #how to call second object like java 
     $obj=new Second(); 
    } 
} 
?> 

Более подробную информацию о автопогрузчики можно найти на php.net: http://php.net/manual/en/language.oop5.autoload.php

+0

можно использовать без регистрации автозагрузки – Burusothman

+0

@Exbury, нет, вы вынуждены выбирать между 'include 'Second.php';', 'require 'Second.php';' или 'autoloader'. PHP должен знать, где определен класс, и это методы, которые вы должны использовать, чтобы указать, где находится класс. – SpartakusMd

+0

Другой вопрос, который у меня есть, если добавить оба класса с пространством имен Test \ Src; Тогда как мы можем создать объект. если я использую как это, это исключает исключение Фатальная ошибка: Class 'Test \ Src \ Second' не найден – Burusothman

Смежные вопросы