[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как получить доступ к переменным из другой функции
Crash2007
привет всем!! =)

есть класс. в нем 2 функции. одной из них нужно получить доступ к 2ум переменным другой функции. подскажите пожалуйста.можно ли такое реализовать? =)



Спустя 7 минут, 47 секунд (15.02.2011 - 13:02) jetistyum написал(а):
а можно более подробно?? Кажется что Вы что-то не так понимаете.

Спустя 4 минуты, 8 секунд (15.02.2011 - 13:06) Crash2007 написал(а):
вот код:
class paginator {
function calcs(&$str = NULL, $num = 12) {
$mysql = new mysql;
$mysql->connnect();
$count_str = 'SELECT COUNT(*) FROM `' . $_GET['page'] . '`';
$query = $mysql->query($count_str);
$row = $mysql->dbarray($query);
$mysql->close();

@$page = $_GET['pg'];
$posts = $row[0];
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
$start = $page * $num - $num;

if($posts) $str .= ' LIMIT ' . $start . ', ' . $num;
}

function pages() {
$prev_class = 'navi_prev';
$next_class = 'navi_next';
$nav_class = 'navi';
$active_nav_class = 'navi_active';

//получить тотал и постс..

$url = SRV . $_GET['page'] . '/?pg=';
if($page != 1)
$prevpg = '← <a class="' . $prev_class . '" href=' . $url . ($page - 1) . '>' . PREV . '</a> ';
if($page != $total)
$nextpg = ' <a class="' . $next_class . '" href=' . $url . ($page + 1) . '>' . NEXT . '</a> →';
for($i = 5; $i >= 1; $i--) {
if($page - $i > 0)
$pg_left .= ' <a href=' . $url . ($page - $i).'>' . ($page - $i) . ' </a> ';
}
for($i = 1; $i <= 5; $i++) {
if($page + $i <= $total)
$pg_right .= ' <a href=' . $url . ($page + $i) . '>' . ($page + $i) . '</a>';
}

if($total > 1) {
echo '<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="20" valign="bottom">
<div class="'
. $nav_class . '">' . $prevpg . $pg_left . '<span class="' . $active_nav_class . '">' . $page . '</span>' . $pg_right . $nextpg . '</div>
</td>
</tr>
</table>'
;
}
}
}


$str = 'SELECT `id`,`date`,`title`
FROM `news`
ORDER BY `date` DESC'
;

$paginator = new paginator;
$paginator->calcs($str, 1);


$mysql = new mysql;
$mysql->connnect();
$query = $mysql->query($str);
$mysql->close();

while($row = $mysql->assoc($query)) {
echo '<a href="' . SRV . $_GET['page'] . '/' . $row['id'] . '/">' . $row['title'] . '</a><br />';
}

$paginator->pages();
возможно не понимаю..пошлите меня куда надо)))

функции pages() нужны переменные $total и $posts из calcs()

Спустя 4 минуты, 35 секунд (15.02.2011 - 13:10) Snus написал(а):
Crash2007
class paginator {
var $temp_1;
var $temp_2;

function test(){
$this->temp_1 = 'test1';
$this->temp_2 = 'test2';
}

function test2(){
echo $this->temp_1;
echo $this->temp_2;
}

}

Спустя 7 минут, 7 секунд (15.02.2011 - 13:17) jetistyum написал(а):
ну да, только нужно не забывать, что эти переменные не просто существуют внутри функции, это переменные объекта, - свойства объекта.

Спустя 4 минуты, 34 секунды (15.02.2011 - 13:22) Crash2007 написал(а):
Snus
class asas {
var $temp_1;
var $temp_2;

function test(){
$this->temp_1 = 'test1';
$this->temp_2 = 'test2';
}

function test2(){
echo $this->temp_1;
echo $this->temp_2;
}
}


$ass = new asas;
$ass->test2();
почему то ничего не выводися....=(

Спустя 1 минута, 48 секунд (15.02.2011 - 13:24) Snus написал(а):
Crash2007
$ass = new asas;
$ass->test();
$ass->test2();

Спустя 23 секунды (15.02.2011 - 13:24) jetistyum написал(а):
потому что метод test() в котором что-то записывается в эти свойства не был выполнен

Спустя 11 минут, 1 секунда (15.02.2011 - 13:35) Crash2007 написал(а):
оо..нармал..спасибо!!! =)

я задам ещё один вопрос..

	$_GET['page'] = !$_GET['page'] ? 'main' : $_GET['page'];
if(!$_GET['id']) {
$str = 'SELECT `meta_title`,
`meta_description`,
`meta_keywords`
FROM `page`
WHERE `page` = "'
. $_GET['page'] . '"';
$mysql = new mysql;
$mysql->connnect();
$query = $mysql->query($str);
$row = $mysql->assoc($query);
$mysql->close();
} else {
$str = 'SELECT `meta_title`,
`meta_description`,
`meta_keywords`
FROM `'
. $_GET['page'] . '`
WHERE `id` = "'
. intval($_GET['id']) . '"';
$mysql = new mysql;
$mysql->connnect();
$query = $mysql->query($str);
$row = $mysql->assoc($query);
$mysql->close();
}
это нормально? открывать и закрывать соединение с базой в каждой инструкции условия? или открыть одну на всю страницу? или (ваш ответ) ?

Спустя 29 секунд (15.02.2011 - 13:36) linker написал(а):
Это не нормально. Открывается один раз в начале работы скрипта, закрывается один раз в самом конце работы всего скрипта. Закрывать не обязательно, PHP сам закроет все, что надо.

Спустя 1 минута, 6 секунд (15.02.2011 - 13:37) Snus написал(а):
Crash2007
Я не думаю, что у тебя очень массивный скрипт выполняется... так что, можно все один раз открыть и закрыть.

Спустя 3 минуты, 49 секунд (15.02.2011 - 13:41) Crash2007 написал(а):
хорошо. спасибо. =)

хотел что бы все правильно было..но видимо нет необходимости wink.gif

Спустя 3 минуты, 6 секунд (15.02.2011 - 13:44) Crash2007 написал(а):
это кстати скрипт из поповских уроков)))
усовершенствованный мною ohmy.gif


_____________
Рисую на PHP :)
Быстрый ответ:

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