Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από Akis_gr49 » 09 Νοέμ 2010 18:19

Γεια σας παιδιά,

Θα ήθελα τα φώτα σας αν γνωρίζετε.

Έχω τον εξής κώδικα

Κώδικας: Επιλογή όλων

<?php 
function test_one&#40;&#41;&#123;
	require_once&#40;'file_one.php'&#41;;
	$version = new Version&#40;&#41;;

	return $version->getVersion&#40;&#41;;
&#125;

function test_two&#40;&#41;&#123;
	require_once&#40;'file_two.php'&#41;;
	$version = new Version&#40;&#41;;

	return $version->getVersion&#40;&#41;;
&#125;

echo "Version 1 is&#58; ".test_one&#40;&#41;;
echo "Version 2 is&#58; ".test_two&#40;&#41;;
?>
Το σφάλμα που μου εμφανίζει είναι το εξής:

Κώδικας: Επιλογή όλων

Fatal error&#58; Cannot redeclare class Version
Το πρόβλημα είναι ότι θέλω να εμφανίσει δεδομένα από δυο διαφορετικά αρχεία που έχουν ίδιο όνομα κλάσης. Δεν μπορώ να πειράξω αυτές τις κλάσεις μέσα στα αρχεία τους, όπως π.χ. θα μπορούσα να άλλαζα όνομα.

Έχω δοκιμάσει και με τις include_once, include, require_once και require αλλά δεν γίνεται κάτι.

Όποια βοήθεια ευπρόσδεκτη.

Ευχαριστώ πολύ.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από gvre » 09 Νοέμ 2010 19:44

Άλλαξε όνομα στη μια κλάση (είπες πως δε μπορείς να το κάνεις αλλά πρέπει).

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από Akis_gr49 » 09 Νοέμ 2010 19:50

gvre έγραψε:Άλλαξε όνομα στη μια κλάση (είπες πως δε μπορείς να το κάνεις αλλά πρέπει).
Γεια χαρά,

Σ' ευχαριστώ για την απάντηση.

Το παράδειγμα που έδωσα έχει 2 κλάσεις, αλλά τι γίνεται όταν έχουμε 60 ίδιου ονόματος αλλά διαφορετικού περιεχομένου;

Η κλάση ανήκει σε κάποιο custom cms και δεν μπορώ να αλλάξω το όνομά της σε 60 αρχεία.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από gvre » 09 Νοέμ 2010 19:55

Για αρχή πετάς το συγκεκριμένο CMS και 1. το ξαναφτιάχνεις ή 2. χρησιμοποιείς κάποιο έτοιμο. Αν έχεις γνώσεις και χρόνο αξίζει να κάνεις το 1. Σε διαφορετική περίπτωση επιλέγεις το 2. Μπορεί να ακούγεται "κάπως" αυτό που σου γράφω αλλά δε μπορώ να φανταστώ ότι υπάρχει εφαρμογή που έχει 60 κλάσεις με το ίδιο όνομα (το ίδιο ισχύει και για 2 κλάσεις με το ίδιο όνομα).

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από Akis_gr49 » 09 Νοέμ 2010 21:20

Σ' ευχαριστώ πολύ για τις συμβουλές σου.

Σίγουρα το cms θέλει πέταμα, αλλά δεν μπορώ να κάνω διαφορετικά.

Αυτό που σκέφτηκα, είναι να καταχωρώ τα δεδομένα των συναρτήσεων σε μια βάση δεδομένων και να τα εμφανίζω όπως θέλω από εκεί.

Δεν μου έρχεται κάτι άλλο στο μυαλό αυτή τη στιγμή.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από gvre » 09 Νοέμ 2010 23:07

Μπορείς να κάνεις bypass το CMS και να φτιάξεις μια δική σου επικοινωνία με τη βάση. Νομίζω ότι κάτι τέτοιο εννοείς.

milen
Δημοσιεύσεις: 8
Εγγραφή: 25 Μάιος 2009 19:13
Τοποθεσία: Bulgaria

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από milen » 17 Νοέμ 2010 13:57

Ean to PHP einai version 5.3 kai ano, auto ginetaei meso to "namespace" .
file_one.php:

Κώδικας: Επιλογή όλων

<?php
    namespace one;

    class Version&#123;

        function getVersion&#40;&#41;&#123;
          return "Version File One";
        &#125;
    &#125;
?>
file_two.php:

Κώδικας: Επιλογή όλων

<?php
    namespace two;

    class Version&#123;

        function getVersion&#40;&#41;&#123;
          return "Version File Two";
        &#125;
    &#125;
?>
kai to diko su code tha einai to eksis:

Κώδικας: Επιλογή όλων

<?php 
function test_one&#40;&#41;&#123; 
   require_once&#40;'file_one.php'&#41;; 
   $version = new one\Version&#40;&#41;; 

   return $version->getVersion&#40;&#41;; 
&#125; 

function test_two&#40;&#41;&#123; 
   require_once&#40;'file_two.php'&#41;; 
   $version = new two\Version&#40;&#41;; 

   return $version->getVersion&#40;&#41;; 
&#125; 

echo "Version 1 is&#58; ".test_one&#40;&#41;; 
echo "Version 2 is&#58; ".test_two&#40;&#41;; 
?>
Oi hosting etereies akoma perimenoun na valoun to 5.3 ........omos pisteuw oti sintoma tha to kanoun.

P.S
Signomi gia ta latinika , ...apla ksenos eimai kai ean grafo sta ellinika.....den ksero poso tha me katalavete..

Edit: H apantisi mou edo apeutinete pros tin erotisi ean ginete na xrisimopeiisoumai tin eidia onoma gia diaforetika class, omos den sou linai to provlima...Oute metaonomazeis tis classes, oute orizeis namespace , pali prepei na kaneis diamorfosis sta arxia.
Den kserw ti logiki pou exai to cms ....omos pisteuw oti mporei eukolo na ftiaxtei script opeios tha diamorfosei ta arxia kai meta na prosthetei kapia dinamikotita sto source ta opeia na sou kanei doulia kai gia 3 arxia.....kai gia 30000000 ........
Τελευταία επεξεργασία από το μέλος milen την 18 Νοέμ 2010 14:06, έχει επεξεργασθεί 1 φορά συνολικά.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από Apostolis_38 » 17 Νοέμ 2010 20:12

milen έγραψε:Signomi gia ta latinika , ...apla ksenos eimai kai ean grafo sta ellinika.....den ksero poso tha me katalavete..

practice makes perfect λένε οι Αγγλοι.
Ευκαιρία είναι... :D

milen
Δημοσιεύσεις: 8
Εγγραφή: 25 Μάιος 2009 19:13
Τοποθεσία: Bulgaria

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από milen » 17 Νοέμ 2010 21:17

Κανένα πρόβλημα που και που να κάνω ασκήσεις...υπεύθυνος είσαι εσύ ....

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από Apostolis_38 » 17 Νοέμ 2010 21:27

Τέλος του μήνα έχει διαγώνισμα.
:roll:

milen
Δημοσιεύσεις: 8
Εγγραφή: 25 Μάιος 2009 19:13
Τοποθεσία: Bulgaria

Ίδιο όνομα κλάσης Fatal error:Cannot redeclare class Version

Δημοσίευση από milen » 17 Νοέμ 2010 21:37

της ευκαιρίες τα π&#1072;ίρνω... τα διαγώνισματα ...οχι :)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης