Buona sera a tutti,
Devo scrivere un applicativo abbastanza complesso ed ho scelto Delphi for PHP come piattaaforma dato che conosco bene la VCL, ma ahime pochissimo il PHP5 dato che è la prima volta che lo impiego.
Il mio problema è nella gestione delle istanze delle classi, ma penso che sia solo dovuto al fatto che non
conosco a dovere il linguaggio stesso. Ma veniamo al sodo..
<?php // file primo.php
class A
{
private $dato="ciao";
function setA($dato)
{
$this->dato=$dato;
}
function getA()
{
return $this->dato;
}
}
$oggetto_A=new A();
function GloableA()
{
global $oggetto_A;
return $oggetto_A;
}
?>
ora ho un altro file php chiamato secondo.php
<?php // secondo.php
require_once("primo.php");
...
GlobaleA->setA("pippo");
$verifica=GlobaleA->getA();
if($verifica=="pippo")
{
redirect ('terzo.php');
}
?>
il dato che trovo nella variabile verifica è quello che ho precedentemente passato...
il mio problema è quando vado in terzo.php e richiamo il metodo "getA" mi viene restituita
la stringa "ciao" e non quello che precedentemente passato ossia la stringa "pippo".
<?php
require_once("primo.php");
$vedo=GlobaleA->getA();
echo $vedo;
?>
qui il dato non contiene la stringa ma quella di defualt del dato membro privato, è come se lavorassi con un altra istanza dell'oggetto, anzi, visto il dato questa è un altra istanza ma non capisco chi la crea e perchè ma sopratutto come faccio ad avere un unica istanza globale nell'intero progetto.
In teoria la funzione GlobaleA dovrebbe avermi creato un istanza globale ma non vorrei che ogni volta che linko il file "primo.php" tramite la clausola "require_once", l'istanza rivenga creata e che ovviamente mi ritrovo i dati privati con valori di default.
Se qualcunodi molto gentilmente mi riesce a suggerire come risolvere questo problema gli sarei davvero grato visto che come ho accennato all'inizio è la prima volta che uso PHP5.
Ringrazio tutti per l'attenzione.
Tfanabe