---
title: "unexpected T_PUBLIC"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/172890-unexpected-t-public"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "tanten"
published: "2008-07-20T18:53:17.000Z"
updated: "2008-07-21T12:32:11.000Z"
replies: 10
views: 803
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/172890-unexpected-t-public"
---

# unexpected T_PUBLIC

## #1 — tanten, 2008-07-20T18:53Z

Jag har försökt söka på vad det kan vara för fel. Men det ger inte många svar
Kodsnutten jag får detta fel på är 
public function leafNodes()
och det jag kan komma på är att det handlar om namnkonflikt i php5 för i lägre versioner fungrar det tydligen.
Vet inte vad jag ska göra. Är det något man ska koppla på i php-inifilen kanske eller?
Någon som kan hjälpa mig?

Permalänk: https://www.webforum.nu/p/172890

## #2 — Troxy, 2008-07-20T23:01Z

Visa mer kod!

Permalänk: https://www.webforum.nu/p/2126650

## #3 — tanten, 2008-07-21T07:27Z

```php
public function leafNodes(){

$stmt = DB::getInstance()->prepare("SELECT name FROM categories WHERE right_node = left_node + 1");
$stmt->execute();
return $stmt->fetchALL(PDO::FETCH_ASSOC);
}
```

och felet

```php
Parse error: syntax error, unexpected T_PUBLIC in xxx\leafnodes.php on line 12
```

Permalänk: https://www.webforum.nu/p/2126659

## #4 — Gislaved, 2008-07-21T07:35Z

Jag skulle spontant gissa på att du har fel tidigare i din kod, ett missat semikolon/hakparentes eller ett hårt blanksteg istället för ett vanligt.

Permalänk: https://www.webforum.nu/p/2126663

## #5 — tanten, 2008-07-21T09:38Z

Nej nu har jag raderat allt innan vilket bara var en kommentar och require("db.class.php"); felet kvarstår.

Permalänk: https://www.webforum.nu/p/2126678

## #6 — colione, 2008-07-21T09:45Z

ge mer kod. Gärna både db.class.php samt leafnodes.php

Permalänk: https://www.webforum.nu/p/2126679

## #7 — tanten, 2008-07-21T10:08Z

Nu fick jag ju felet även när jag plockade bort db men så här ser db ut

```php
<?php
class DB{
private static $instance = NULL;

private function __construct() {
 
}

public static function getInstance() {

if (!self::$instance)
    {
	   
    self::$instance = new PDO("mysql:host=localhost;dbname=animals", 'root', 'xxx');;
    self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
return self::$instance;
}

private function __clone(){
}

} 

?>
```

leafnodes.php

```php
<?php
require("db.class.php"); 

public function leafNodes(){

$stmt = DB::getInstance()->prepare("SELECT name FROM categories WHERE right_node = left_node + 1");
$stmt->execute();
return $stmt->fetchALL(PDO::FETCH_ASSOC);
}
?>
```

och
i filen där error kommer

```php
<?php
require("leafnodes.php"); 

$iterator = new RecursiveIteratorIterator(new recursiveArrayIterator($hierachy->leafNodes()));
try {
    foreach($iterator as $key=>$value)
        {
        echo $value.'<br />';
        }
    }
catch(Exception $e)
    {
    echo $e->getMessage();
    }
 
?>
```

Permalänk: https://www.webforum.nu/p/2126681

## #8 — colione, 2008-07-21T10:19Z

Du ska inte ha public framför en vanlig funktion, vilket du har nu :) leafNodes ingår inte i någon klass, därav så får du inte använda "keywords" innan.

Permalänk: https://www.webforum.nu/p/2126683

## #9 — jme, 2008-07-21T10:20Z

\*SNIP\*

Permalänk: https://www.webforum.nu/p/2126684

## #10 — jme, 2008-07-21T10:21Z

Ah, colione har nog rätt. :)

Permalänk: https://www.webforum.nu/p/2126685

## #11 — tanten, 2008-07-21T12:32Z

Nu fick jag det att fungera   :)  Tack för tipsen...

```php
<?php
require("db.class.php");
class hierachy{

public function leafNodes(){

$stmt = DB::getInstance()->prepare("SELECT name FROM categories WHERE right_node = left_node + 1");
$stmt->execute();
return $stmt->fetchALL(PDO::FETCH_ASSOC);
}
}
$hierachy = new hierachy;
$iterator = new RecursiveIteratorIterator(new recursiveArrayIterator($hierachy->leafNodes()));
try {
    foreach($iterator as $key=>$value)
        {
        echo $value.'<br />';
        }
    }
catch(Exception $e)
    {
    echo $e->getMessage();
    }
?>
```

Permalänk: https://www.webforum.nu/p/2126695

---

Tråden på webben: https://www.webforum.nu/amne/php/172890-unexpected-t-public
