[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по классам
Леонид
У меня есть вопрос про классы, допустим есть некоторый код:

class foo{
function weather($date){
return $temperature;
}

function call(){
$date = "";
$r = $this->weather($date)
}
}




И php выдаёт ошибку Fatal error: Call to undefined function weather

Код придуман, но ситуация примерно такая.



Спустя 1 минута, 18 секунд (28.08.2010 - 17:37) Леонид написал(а):
Прошу прощения - Call to undefined method Engine::weather

Спустя 9 минут, 5 секунд (28.08.2010 - 17:46) Lenarfate написал(а):
для начала поставь точку с запятой
$r = $this->weather($date);

Спустя 1 минута, 10 секунд (28.08.2010 - 17:47) Леонид написал(а):
Не в этом прблема, код придумал.

Спустя 2 минуты (28.08.2010 - 17:49) Lenarfate написал(а):
у меня работает. как ты вызываешь этот метод? покажи

Спустя 2 минуты, 40 секунд (28.08.2010 - 17:52) Guest написал(а):
class mysql_connector{

function db_connect($server, $user, $pass, $base)
{
mysql_connect($server,$user,$pass) or die("Error to connect to db");
mysql_select_db($base) or die("couldnt select db");
}

function get_content_by_id($id)
{
$sql = "SELECT * FROM `content` WHERE `id` = ".$id;
$sql_result = $this->mysql_qt($sql); //Вот так не работает
return $sql_result['content'];
}


function get_title_by_id($id)
{
$sql = "SELECT * FROM `content` WHERE `id` = ".$id;
$sql_result = mysql_connector::mysql_qt($sql); //Вот так работает
return $sql_result['caption'];
}

public static function mysql_qt($query)
{
$sql = mysql_query($query);
if(mysql_num_rows($sql)==0){
return 0;
} else {
$sql_result = mysql_fetch_assoc($sql);
return $sql_result;
}
}
}




Простите за говнокод, какой есть.

Спустя 2 минуты, 51 секунда (28.08.2010 - 17:55) Lenarfate написал(а):
1. при чем тут другой код.
2. раз так, то естественно
Цитата
$sql_result = $this->mysql_qt($sql); //Вот так не работает

а

Цитата
$sql_result = mysql_connector::mysql_qt($sql); //Вот так работает

.
только тк твой метод статический, его надо вызывать так
self::mysql_qt($sql)

Спустя 1 минута, 27 секунд (28.08.2010 - 17:56) Guest написал(а):
Статик я уже в ходе экспериментов добавил. Мне интересно, почему не работает первый вариант, даже без статик не работает.

Спустя 12 минут, 3 секунды (28.08.2010 - 18:08) dvs написал(а):
А так?
<?php
class
foo{
function weather($date){
$temperature = $date;
return $temperature;
}

function call(){
$date = "123";
$r = $this->weather($date);
return $r;
}
}


$obj = new foo;
echo $obj->call();

Спустя 2 минуты, 53 секунды (28.08.2010 - 18:11) Romms написал(а):
dvs, работает!!!

Спустя 11 минут, 10 секунд (28.08.2010 - 18:22) dvs написал(а):
я знаю smile.gif надеюсь помог

Спустя 17 минут, 58 секунд (28.08.2010 - 18:40) Guest написал(а):
Всё, я понял, просто я извне вызывал функции как статические, вот они и ссылались на нужную мне функцию, как на статическую. я тупица.
Спасибо большое.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.