Mam tę funkcję


function theme_status_time_link($status, $is_link = true) {
    $time = strtotime($status->created_at);
    if ($time > 0) {
        if (twitter_date('dmy') == twitter_date('dmy', $time) && !setting_fetch('timestamp')) {
            $out = format_interval(time() - $time, 1). ' ago';
        } else {
            $out = twitter_date('H:i', $time);
        }
    } else {
        $out = $status->created_at;
    }
    if ($is_link)
        $out = "<a href='status/{$status->id}' class='time'>$out</a>";
    return $out;
}

I to

function twitter_is_reply($status) {
    $html = " <b><a href='user/{$status->from->screen_name}'>{$status->from->screen_name}</a></b><br /> $actions $link<br />{$text} <small>$source</small>";
}

Muszę przekazać zmienną $out z pierwszej funkcji do drugiej funkcji, dokładnie do zmiennej $html w drugiej funkcji. Jednak wszystko, co próbuję, daje mi błędy i nic nie wyświetla. Bez używania globalnych, ponieważ pojawia się wiele razy w moim skrypcie. Dziękuję.

0
Mob 13 lipiec 2011, 01:34
Dlaczego nie użyjesz referencji: theme_status_time_link($status, $is_link = true, &$buffer){ ... } function twitter_is_reply($status, &$buffer) { .. } Czy to jest to, o czym myślisz? Dzięki temu będziesz mógł przekazać referencję do zmiennej. Powiedz mi, czy o to ci chodzi. Po drugie, możesz wywołać drugą funkcję w pierwszej funkcji, tuż przed powrotem.
 – 
Rolice
13 lipiec 2011, 01:37
2
Nie możesz rozszerzyć twitter_is_reply o funkcję drugiego parametru twitter_is_reply($status, $out) {...}? Jeśli inaczej - podaj więcej informacji, jak należy nazywać twitter_is_reply...
 – 
madflow
13 lipiec 2011, 01:39

2 odpowiedzi

Najlepsza odpowiedź

Jeśli chcesz używać funkcji, wyślij to jako argument:

function twitter_is_reply($status, $html) {
    $html .= " <b><a href='user/{$status->from->screen_name}'>{$status->from->screen_name}</a></b><br /> $actions $link<br />{$text} <small>$source</small>";

    return $html;
}

Stosowanie:

$out = theme_status_time_link();

echo twitter_is_reply('helloworld', $out);
2
Glass Robot 13 lipiec 2011, 01:39

Teraz zaczynasz rozumieć, dlaczego OO jest tak dobre.
Stwórz jedną klasę, ustaw $out jako jej członka, a dwie funkcje, uczyń je metodami tej klasy.

0
Itay Moav -Malimovka 13 lipiec 2011, 01:37
2
Gdybym zrozumiał którekolwiek z powyższych, nie zadawałbym tego pytania.
 – 
Mob
13 lipiec 2011, 01:56