Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-11-2008, 18:23   #1
anonimizzato
 
Messaggi: n/a
[PHP] Ereditarietà classi

Ciao a tutti,

sto giochicchiando un pò con l'OOP di PHP 5 e volevo cercare di capire meglio l'ereditarietà.

Posto subito il codice:

Codice PHP:
class str {
    
            var 
$string;
    
            function 
__construct($str) {
            
                
$this->string $str;
            
            }
            
            
// stampa la stringa originale
            
function stampa() {
            
                echo 
$this->string;
            
            }
            
            
// stampa il l'hash MD5 della stringa
            
function stampaMD5() {
            
                echo 
md5($this->string);
                                                    
            }
            
            
// stampa la stringa al rovescio
            
function inverti() {
            
                
$nChars strlen($this->string);
                
$Str $this->string;
                
                for (
$i 0$i $nChars$i++) {
                
                    
$arr[] = $Str[$i];
                
                }

                echo 
implode("",array_reverse($arr,true));
             
            }
            
            
    }

    class 
saluta extends str {
    
            var 
$msg;
                                                
            function 
saluta($msg) {
                                        
                
$this->msg = new str($msg);            
                
            }    
            
            function 
stampaUC() {
            
                echo 
strtoupper($this->msg->string);
            
            }
                                                                                                                
    }
    
    
    
    
$ciao = new saluta('ciao');
        
    
$ciao->msg->stampa();        
    
$ciao->msg->stampaUC(); 
In pratica creo una classe "saluta" in cui inizializzo una stringa.

Su questa stringa passata al costruttore creo poi un nuovo oggetto perchè voglio che la stessa acceda a diversi metodi della classe ereditata "str". *

E vi accedo quindi con: $ciao->msg->metodo().

Se però volessi creare un metodo personalizzato nella classe "saluta" perchè non posso accedervi con: $ciao->msg->stampaUC() ma solo con $ciao->stampaUC() ?

Come dovrei fare per poter accedere in modo uguale ai metodi della classe "str" con:
$ciao->msg->stampaUC()?

Potendo dunque avere una sintassi coerente come:
$ciao->msg->stampa()
$ciao->msg->stampaUC()

Scusate se ho fatto qualche errore (orrore) logico nell'impostazione del codice ma è proprio perchè lo sto studiando che ho bisogno di chiarimenti.

* Il fatto di aver costruito la variabile "msg" come oggetto l'ho fatto per vedere come funzionava l'annidamento degli oggetti, altrimenti so anch'io che mi bastava solo ereditare "str" ed il gioco era fatto.

Tnx.
  Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
Windows 11 2025 Update (25H2), il mio PC...
Via acari, polvere e sporco da materassi...
Ecovacs X9 Pro Omni in offerta a 799 €: ...
Roborock QV35A e QV35S in forte sconto s...
Samsung svela il Galaxy Tab A11+ con DeX...
La polizia ferma un'auto che fa inversio...
2 certezze e una bella novità: sc...
Windows 11 2025 Update è disponib...
Xiaomi 15T e 15T Pro già in scont...
Bici elettrica VARUN 26'' Fat Tire a sol...
Il web libero è morto, il pap&agr...
Il meglio dei robot a basso costo: Lefan...
Laureati in informatica senza lavoro, ne...
Una valanga di contenuti già annu...
Molti nemici... molto successo? Questo C...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v