Avatar billede esbenn Nybegynder
16. november 2011 - 21:57 Der er 3 kommentarer og
1 løsning

Function return array

Hej,

Det er sikkert mig der ikke lige helt har fattet array i PHP, men har en kode der er sådan her:
    function news_func(){
        $i=0;
        $posts_array = get_posts(array('numberposts' => 2, 'orderby' => 'post_date','order' => 'DESC','post_type' => 'post','post_status' => 'publish'));
        Foreach ($posts_array as $front_news){
        $title = $front_news->post_title;
        $output[$i]= $title;
        $i=$i+1;
        }
        return $output;
    }

Jeg kan ikke forstå hvorfor jeg ikke for alle de $title der skulle blive løbet igennem...  Håber nogen kan se min fejl!
Avatar billede expnet Seniormester
16. november 2011 - 22:52 #1
Umiddelbart ser det ikke ud til at problemet er i den funktion som du har postet her
men mere i denne funktion "get_posts()" som bliver brugt i funktionen


//expnet
Avatar billede JensPeterSvensson Nybegynder
17. november 2011 - 08:48 #2
Uden at kende get_posts, så kunne jeg forestille mig at erklæringer af numberposts => 2. Betyder at den kunne returnerer 2 poster.

Den funktion du viser, virker fint hvis man dummy implementere det du ikke viser.


<?php
class o{
  public $post_title;
}

function get_posts(){
  $o = array(new o(),new o());
  $o[0]->post_title = 'T';
  $o[1]->post_title = 'P';
  return $o;
}

function news_func(){
        $i=0;
        $output = array();
        $posts_array = get_posts(array('numberposts' => 2, 'orderby' => 'post_date','order' => 'DESC','post_type' => 'post','post_status' => 'publish'));
        Foreach ($posts_array as $front_news){
        $title = $front_news->post_title;
        $output[$i]= $title;
        $i=$i+1;
        }
        return $output;
    }
var_dump(news_func());
?>


Har tilføjet en instantiering af $output, men det er teknisk set ikke nødvendigt
Avatar billede esbenn Nybegynder
17. november 2011 - 08:54 #3
Hmm... Ja jeg forstår det heller ikke helt... For min get_post virker fint, for hvis jeg bare udskriver $output[0] eller $output[1] så giver det et fint resultat... Men det kan være jeg bliver nød til at gøre det på den langsommelige måde og skrive det hele ud...
Avatar billede esbenn Nybegynder
17. januar 2012 - 20:11 #4
Lukket!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester