Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Classi, sintassi :: e $this -> Problems

    Scusate x il titolo ma nn sapevo come esprimere meglio questo problema.

    Uso due classi per la gestione dei meii templates:
    template.php -> Estrapolazione dati da db e operazioni base
    mysql.php -> dialogo con MySQL

    Ho preferito un usare classi astratte perchè non penso ci sia il bisogno, comunque la templates.php include mysql.php, ed usa questa sintassi:

    mysql::query()

    per operare con i metodi di mysql.php... Però, se query() a sua volta usa altri metodi della SUA classe, templates.php mi frega e mi dice che non ci sono i metodi x, y e z nella sua classe!!! Ho provato a rinominare i riferimenti interni di 'mysql' da $this->metodo a mysql::$metodo e mi và...

    Non c'è un metodo alternativo per risolvere questo problema???
    PaTeR
    From Ban to Life

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    posta a grandi linee il codice.




    think simple think ringo

  3. #3

    Re: Classi, sintassi :: e $this -> Problems

    Ecco le parti interessate:

    template.php
    codice:
    <?php
    	require("Engines/mysql.php");
    
    	class page
    	{
    		function get_template($tmpNAME)
    		{
    			$arr = mysql::get_db_data("argomento"));
    
    			return $arr['tmpTEXT'];
    		}
    	}
    ?>
    mysql.php
    codice:
    <?php
    	class mysql
    	{
    		// Default functions
    		function __construct()
    		{
    			// Settings
    			$this->setvars();
    
    			// Enstablishing MySQL Connection
    			$this->connect();
    		}
    
    		// New Query
    		function query($type, $array)
    		{
    			// Query Type
    			$tpl = $this->settings['queries']['select'];
    
    			// Making replacements
    			$result = vsprintf($tpl, $array);
    
    			return mysql_query($result);
    		}
    
    		// Fetch Array
    		function fetch_array($result)
    		{
    			// Fetch Array
    			$array = mysql_fetch_array($result, MYSQL_ASSOC);
    			
    			// codice...
    
    			return $array;
    		}
    
    		// Smart Fetching Array
    		function get_db_data($type, $array)
    		{
    			$res = $this->query($type, $array);
    			return $this->fetch_array($res);
    		}
    	}
    ?>
    PaTeR
    From Ban to Life

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    guarda che due possibili soluzioni:
    codice:
    class topolino extends paperino  {
    
    	function topolino(){
    	}
    	
    	function pippo(){
    		parent::paperoga();
    	}
    }
    
    class paperino {
    	
    		function paperone(){
    			echo 'io sono paperone';		
    		}
    		
    		function paperoga(){
    			$this->paperone();
    			echo 'io sono paperoga';
    		}
    
    }
    $topolino = &new topolino();
    $topolino->pippo();

    codice:
    class topolino {
    
    	function topolino( &$paperino ){
    		$this->paperino = &$paperino;
    	}
    	
    	function pippo(){
    		paperino::paperoga();
    	}
    }
    
    class paperino {
    	
    		function paperone(){
    			echo 'io sono paperone';		
    		}
    		
    		function paperoga(){
    			$this->paperino->paperone();
    			echo 'io sono paperoga';
    		}
    
    }
    $paperino = &new paperino();
    $topolino = &new topolino( $paperino );
    $topolino->pippo();
    think simple think ringo

  5. #5
    e da questo che mi rendo conto che io di php ne devo ancora studiare parecchio...


    Spero di imparare presto.
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.