|
|
|
| у меня код следующий
<?php
class MyMenu
{
var $usermsg;
var $mymenu;
var $DBname="testShop";
var $MyTB="my_tbs";
var $myconst="1104867583";
function my_menu()
{....
|
<?php
include('mymenu.php');
include('myshop.php');
class shoping
{
var $m;
var $s;
function shoping()
{
$m=new MyMenu;
$s=new MyShop;
}
function vibor($a,$b)
{
$this->m->my_menu();
$this->m->user_in();
.....
|
<?php
include('shoping.php');
$s=new shoping();
if ((isset($a)) && (isset($b)))
{
$s->vibor($a,$b);
}
else
{
$s->vibor(0,0);
}
......
|
Выдает ошибку:
Fatal error: Call to a member function on a non-object in shoping.php on line 18
т.е. в строчке:
Я наверно как-то нетак классами пользуюсь. Подскажите что я нетак делаю. | |
|
|
|
|
|
|
|
для: MadMaxxx
(21.01.2005 в 09:55)
| | Дело в том, что в калссе $m и $this->m это разные переменные. Поэтому строки
<?php
$m=new MyMenu;
$s=new MyShop;
?>
|
следует переписать следующим образом
<?php
$this->m = new MyMenu;
$this->s = new MyShop;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(21.01.2005 в 12:45)
| | Ой, точно, вот это лоханулся :-)
У меня ещё вопрос, почему так выводить не хочет:
<?
...
echo "$this->s->mymsg";
....
|
а так выводит:
в первом классе:
function show()
{
echo "$this->mymsg";
}
|
а во втором:
| |
|
|
|
|
|
|
|
для: MadMaxxx
(23.01.2005 в 08:14)
| | Такие сложные конструкции всё-таки лучше заключать в фигурные скобки или соеденять точками
<?php
echo "{$this->s->mymsg}";
echo " ".$this->s->mymsg." ";
?>
|
| |
|
|
|