D
Demonn
Здравствуйте уважаемые форумчане.
Пишу проект и недавно столкнулся со странной проблемой.
Вот пример вызова методов
[codebox]<?php
class n1{
protected $a;
function __construct($a){
$this->a = $a;
}
function return1(){
echo $this->a;
}
}
class n2{
function return1(){
echo 'n2_here';
}
}
class n3{
function return1(){
echo 'n3_here';
}
}
$n1 = new n1('param for n1');
$n2 = new n2();
$n3 = new n3();
class nn{
public function returnn(){
echo '<br>n1---' .n1::return1();
echo '<br>n2---' .n2::return1();
echo '<br>n3---' .n3::return1();
}
}
$nn = new nn();
$nn->returnn();
?> [/codebox]
должно выводить:
n1---param for n1
n2---n2_here
n3---n3_here
а выводит:
n1---n2_here
n2---n3_here
n3---
Как по вашему, в чём здесь проблема и как её можно решить?
Я пытался передать в конструкторы ссылку на массив ссылок на все объекты чтобы потом через эту ссылку можно было обращаться к методам другого класса. Пишет что нельзя обращаться к методу не в контексте его класса. Ну это понятно почему..
Пытался играться с namespace но эффекта не получил.
Как будто контексты как-то затираются что-ли.
мой софт: apache 1.3.3, php 5.2
Пишу проект и недавно столкнулся со странной проблемой.
Вот пример вызова методов
[codebox]<?php
class n1{
protected $a;
function __construct($a){
$this->a = $a;
}
function return1(){
echo $this->a;
}
}
class n2{
function return1(){
echo 'n2_here';
}
}
class n3{
function return1(){
echo 'n3_here';
}
}
$n1 = new n1('param for n1');
$n2 = new n2();
$n3 = new n3();
class nn{
public function returnn(){
echo '<br>n1---' .n1::return1();
echo '<br>n2---' .n2::return1();
echo '<br>n3---' .n3::return1();
}
}
$nn = new nn();
$nn->returnn();
?> [/codebox]
должно выводить:
n1---param for n1
n2---n2_here
n3---n3_here
а выводит:
n1---n2_here
n2---n3_here
n3---
Как по вашему, в чём здесь проблема и как её можно решить?
Я пытался передать в конструкторы ссылку на массив ссылок на все объекты чтобы потом через эту ссылку можно было обращаться к методам другого класса. Пишет что нельзя обращаться к методу не в контексте его класса. Ну это понятно почему..
Пытался играться с namespace но эффекта не получил.
Как будто контексты как-то затираются что-ли.
мой софт: apache 1.3.3, php 5.2