[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: передать переменную из класса в класс
Kusss
Class test1 
{
function __construct(){
// тут запрос в базу
$sql = "
SELECT
*
FROM
`razdel`
ORDER BY
id
"
;
$sql = mysql_query($sql);
while ($value = mysql_fetch_assoc($sql)){
$this->name[ $value['id'] ] = $value['name'];
}
}
}


Class test2
{
private function view() {
// как тут вызвать $this->name из test1 ?
}
}

через дополнительную функцию в test1 , в которой будет
public function return_name_array() {
return $this->name;
}
или как-то по другому ?
VeRTak

<?php

Class
test1
{

public $name;

function __construct(){
// тут запрос в базу
$sql = "
SELECT
*
FROM
`razdel`
ORDER BY
id
"
;
$sql = mysql_query($sql);
while ($value = mysql_fetch_assoc($sql)){
$this->name = $this->name[ $value['id'] ] = $value['name'];
}
}
}

Class test2 extends test1
{
private function view() {
$this->name;
}
}



p.s не проверял
Kusss
через наследование ... а имеет смысл его делать, если в первом классе много всего, и общая только 1 функция ?
Invis1ble
Class test2 
{
private function view(test1 $test1) {
$test1->name;
}
}


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Kusss
Invis1ble
вместе с наследованием ?
Invis1ble
Цитата (Kusss @ 19.10.2015 - 13:10)
Invis1ble
вместе с наследованием ?
Kusss
test2 должен быть наследован от test1, или брать изначальный вариант кода ?
Invis1ble
Цитата (Kusss @ 19.10.2015 - 13:14)
test2 должен быть наследован от test1, или брать изначальный вариант кода ?

при передаче объекта аргументом в метод это не имеет значения

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

inpost
Всё зависит от задачи. Когда говорим образно о существование непонятных классов, то подходы можно применять разные, начиная от наследования, заканчивая и простые статичными классами wink.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Kusss
Цитата (Invis1ble @ 19.10.2015 - 12:07)
<pre class="sh_sourceCode" rel="php"><span class="sh_keyword">Class</span> test2
<span class="sh_cbracket">{</span>
<span class="sh_keyword">private function</span> <span class="sh_function">view</span><span class="sh_symbol">(</span>test1 <span class="sh_variable">$test1</span><span class="sh_symbol">)</span> <span class="sh_cbracket">{</span>
            <span class="sh_variable">$test1</span><span class="sh_symbol">-></span>name<span class="sh_symbol">;</span>
<span class="sh_cbracket">}
}</span></pre>

так не получилось, ругался на аргумент.
	Class test1 
{
function __construct(){
// тут запрос в базу
$sql = "
SELECT
*
FROM
`razdel`
ORDER BY
id
"
;
$sql = mysql_query($sql);
while ($value = mysql_fetch_assoc($sql)){
$this->name[ $value['id'] ] = $value['name'];
}
}
}

Class test2
{
public function view(test1 $test1) {
return $test1->name;
}
}


и вызов
	$test1 = new test1();
$test2 = new test2();
$array = $test2->view();
echo '<pre>';
print_r($test1->name);
print_r($array);
echo '</pre>';

Цитата
Catchable fatal error: Argument 1 passed to test2::view() must be an instance of test1, none given, called in /home/u264805/site.ru/www/test.php on line 6 and defined in /home/u264805
Быстрый ответ:

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