Ottenere la lunghezza di una stringa in php

Giorgio Borelli

Come riesco ad ottenere la lunghezza di una stringa in php? Quant'è lunga una stringa in php? Di quanti caratteri è composta la mia stringa? Per chi è alle prime armi con la programmazione, queste domande sono lecite, ma la risposta è davvero semplice ed immediata, andiamo a scoprire come calcore la lunghezza di una stringa in php.

Prosegue...

Categorie: PHP | Programmazione

Tags: ,

How to fix Parse error: syntax error, unexpected T_LOGICAL_OR

Giorgio Borelli

Durante la stesura del vostro codice, all'improvviso, l'interprete PHP vi ha mostrato il seguente messaggio d'errore "Parse error: syntax error, unexpected T_LOGICAL_OR"! E stupiti vi chiedete da dove diavolo sia spuntato se tutto procedeva per il verso giusto. Niente paura probabilmente è solo un banale errore di copia incolla, di battitura o al massimo di distrazione. Vediamo quali sono le possibili cause e come rimediarvi immediatamente Prosegue...

Categorie: fix | PHP | Programmazione

Tags:

Early Binding o Late Binding quale dei due implementa il Polimorfismo?

Giorgio Borelli

tecniche di programmazione OOP per implementare il polimorfismoChi mastica OOP (Object Oriented Programming - Programmazione orientata agli ogetti) sà bene cosa sia il Polimorfismo, il quale costituisce uno dei tre pilastri fondamentali della OOP, gli altri due sono l'Eredità e l'Incapsulamento.

Per Polimorfismo s'intende la capacità di classi derivate d'implementare lo stesso metodo della classe madre con comportamenti diversi, infatti polimorfico deriva dal greco e letteralmente significa "avere molte forme". I linguaggi procedurali come il Pascal o il C sono "monomorfi", in quanto le loro funzioni implementano un solo tipo o meglio un solo comportamento, con linguaggi OOP quali C#, VB.NET, Java o lo stesso C++ il concetto di polimorfismo (strettamente legato al tipo) assume concettualmente un'importanza fondamentale in quanto consente di approssimare la realta con maggiore efficacia, con il Polimorfismo infatti possiamo mandare agli oggetti (instanze di classi) lo stesso messaggio ed ottenere da essi comportamenti diversi, sul modello della vita reale, in cui termini simili determinano azioni diverse, in base al contesto in cui vengono utilizzati.

L'obiettivo principale del Polimorfismo è quello di aggiungere flessibilità e favorire il riuso del codice (in questi casi non potremmo fare affidamento sul compilatore per scoprire errori di uso dei tipi nella compilazione).

Ma come implementare il Polimorfismo nella programmazione ad oggetti? E cosa sono il late binding e l'early binding? E come sono legati al polimorfismo?

Prosegue...

Categorie: Programmazione

Tags:

Compilatori ed Interpreti

Giorgio Borelli

Scelta di un Compilatore a riga di comando

Quando si realizza un software, il programmatore detta le istruzioni al computer tramite la scrittura di un codice sorgente in un determinato linguaggio di programmazione. Il codice sorgente però non è direttamente eseguibile dalla CPU (Central Processing Unit), è necessario “tradurlo” in linguaggio macchina, ossia un file binario contenente microistruzioni gestibili dal processore. Inoltre diverse architetture di processori prevedono linguaggi macchina differenti.

La traduzione viene compiuta in maniera del tutto automatica, con opportuni programmi detti, Compilatori ed Interpreti, ognuno con le proprie caratteristiche, vantaggi e svantaggi. A seconda di come il linguaggio di programmazione viene tradotto nel linguaggio macchina, si parla dunque di linguaggi compilati e linguaggi interpretati.

Andiamo quindi a scoprire le principali differenze tra linguaggi compilati ed interpretati, quali processi seguono per generare il codice macchina sino ad arrivare alla creazione dell'eseguibile.

Prosegue...

Categorie: .NET framework | Programmazione

Tags: ,

Differenze tra Tipi di Valore e Tipi di Riferimento

Giorgio Borelli

Le principali caratteristiche e differenze tra i tipi di valore ed i tipi di riferimento del .NET frameworkI linguaggi supportati dal .NET framework quali C# e VB si dice che sono strongly-typed, ossia fortemente tipizzati, in parole povere ogni variabile od oggetto dichiarato all'interno del programma deve definire un tipo e lo deve rispettare (pena un errore di compilazione).

Pertanto un tipo descrive le caratteristiche dell'informazione che esso dovrà andare a rappresentare all'interno del programma a mezzo di una variabile, sia esso un numero, una sequenza di caratteri od oggetti più complessi come istanze di classi, in ogni caso ogni elemento all'interno di un programma sviluppato col .NET framework deve essere dichiarato a mezzo di un tipo e ne deve rispettare le funzionalità durante l'uso.

I tipi non si differenziano però solo per il dato che rappresentano, ma anche per la gestione che di questi se ne fà in memoria. All'interno del .NET framework, o meglio del CLR (Common Language Runtime) sono definite due categorie di tipi, i Tipi di Valore (Value Types) e Tipi di Riferimento (Value References), l'una e l'altra categoria presenta le proprie caratteristiche e soprattutto ha un diverso metodo di allocazione della memoria, per chi vuole iniziare a programmare in .NET non può prescindere dalla conoscenza di queste nozioni di base relative ai tipi per valore e per riferimento, andiamo a vedere pertanto le principali caratteristiche e differenze.

Prosegue...

Categorie: .NET framework | C# | Programmazione

Tags: ,

Il pattern Singleton in C#

Giorgio Borelli

Il design pattern Singleton in C SharpNell'ambito della programmazione OOP i design patterns non sono altro che delle soluzioni efficaci, testate e funzionanti a problemi comuni. Utilizzare un pattern al momento opportuno si rivela sicuramente una soluzione elegante ed efficace, ed evita di ri-scrivere del codice potenzialmente non ottimizzato o contentente dei bug. Tuttavia i patterns non rappresentano delle regole scritte per una buona programmazione, più che altro forniscono delle linee guida da seguire quando uno sviluppatore deve mettere appunto un determinata soluzione.

I design patterns sono diversi, ed è celebra la loro raccolta nel libro “Design Patterns: Elements of Reusable Object-Oriented Software” ad opera del Gof (Gang of four - la banda dei quattro), quattro esperti programmatori di fama, i quali hanno suddiviso i patterns in tre famiglie: strutturali, creazionali e comportamentali.

Oggi vogliamo prendere in considerazione il pattern Singleton, appartenente ai patterns creazionali, specifici per la creazione d'istanze. Lo scopo del pattern Singleton è quello di permettere per una classe la creazione di una ed una sola istanza con un'unico punto d'accesso (entry-point) all'istanza a livello globale.

Andiamo a scoprire come s'implementa un pattern Singleton in C# e quali caratteristiche e vantaggi comporta.

Prosegue...

Categorie: C# | Programmazione

Tags: ,