web design umbria
react, web design Umbria, web developer Umbria

REACT lato server: INTRODUZIONE

web design umbria

All’ indirizzo https://umbriawayformazione.wordpress.com/2020/05/30/imparare-react-analizzando-casi-concreti-da-inclassificato-a-grande-maestro-in-sette-giorni/ abbiamo visto come costruire applicazioni lato client sulla parte statica HTML importando librerie esterne compreso il traduttore. Adesso vediamo perchè ci conviene passare sull’ altra sponda con JavaScript lato Server con Node, NPM etc. La prima obiezione che salta subito all’ occhio è “ma è così semplice fare tutto HTML, quello che scrivo si capisce“. Nel modo moderno di usare REACT invece devo conoscere la finestra terminale e impartire comandi del tipo:

  • npm -v (per verificare se ho installato il manager di Node, quello che mi fa arrivare in casa qualsiasi cosa (moduli)
  • node -v (il motore che gestisce la parte server di JS)
  • npm install -g create-react-app (comando che serve a dire globalmente al sistema che può creare applicazioni con la libreria react)
  • create-react-app mia-applicazione (dopo essersi posizionati sul desktop questo comando crea il progetto mia-applicazione che userà tecnologia react)
  • avere familiarità con comandi come cd mia-applicazione e npm start (per far partire il programma)
  • avere familiarità con i metodi di pubblicazione a produzione con npm run build (crea un index.html nella cartella build che sarebbe il corrispettivo del nostro https://www.farwebdesign.com/projectreact/react_14.html)
  • avere familiarità con il package.json e gli script a sostegno e le dipendenze associate nel file
  • essere in grado di creare la cartella node_modules con il comando npm install o npm i
  • saper lanciare i programmi appunto con npm start
  • saper costruire le build
  • saper servire in rete le buil con comandi come npm install serve – g e serve – s build che mi danno la possibilità di vedere il risultato finale su localhost

Ora la domanda critica é: perchè devo imparare tutte queste cose quando le posso evitare facendo solo la parte statica con il metodo: https://www.farwebdesign.com/projectreact/react_14.html ??? La risposta è semplicissima: perchè dopo un primo periodo di trauma ci si accorge che tutto è più ricco di risorse e veloce; perchè ci guadagna l’organizzazione di codice in quanto tutti gli snippet vengono separati adeguatamente al contrario di quello che si legge nell’ HTML. Vediamo dal vivo, il vecchio HTML statico era così composto:

 

<div id=”root”></div>
<script type=”text/babel”>

const lakeList = [
{id: 1, name: “Lago Trasimeno”, trailhead: “Volare”},
{id: 2, name: “Lago di Corbara”, trailhead: “Sognare”},
{id: 3, name: “Lago di Piediluco”, trailhead: “Ammirare”}
];

const App = ({lakes}) => (
<ul>
{lakes.map(lake =>
<li key={lake.id}>{lake.name} | Trailhead: {lake.trailhead}</li>
)}
</ul>
)

ReactDOM.render(
<App lakes={lakeList}/>,
document.getElementById(“root”)
);

</script>

vediamo cosa contiene la cartella SRC strutturata nel nuovo modo di creare applicazioni lato server, il file index.js:

import React from “react”;
import ReactDOM from “react-dom”;
import “./index.css”;
import App from “./App”;
import * as serviceWorker from “./serviceWorker”;

const lakeList = [
{ id: 1, name: “Echo Lake”, trailhead: “Echo Lake” },
{ id: 2, name: “Maud Lake”, trailhead: “Wright’s Lake” },
{ id: 3, name: “Cascade Lake”, trailhead: “Bayview” }
];

ReactDOM.render(<App lakes={lakeList} />, document.getElementById(“root”));

e cosa contiene il file App.js, sempre all’ interno della stessa cartella SRC, importato e richiamato dal metodo render con la A maiuscola?

import React from “react”;

const App = ({ lakes }) => (
<ul>
{lakes.map(lake => (
<li key={lake.id}>
{lake.name} | Trailhead: {lake.trailhead}
</li>
))}
</ul>
);

export default App;

 

il risultato finale quando si lancia il tutto dopo aver installato le dipendenze con npm install seguito da npm start è esattamente lo stesso che https://www.farwebdesign.com/projectreact/react_14.html , con la differenza sostanziale che non devo scrivere a mano nulla rispetto a CSS da integrare o altro perchè l’applicazione è tutta collegata all’ unisono. Nello specifico si noti come la index richiami il componente, isolato e riutilizzabile come vuole la filosofia atomica di react per altri usi e consumi!

CONCLUSIONI:

Dopo uno sbandamento iniziale che può durare a lungo si entra progressivamente nell’ area dei benefici che la nuova tecnologia offre. Quindi è meglio abbandonare da subito la logica seguita nel corso di https://umbriawayformazione.wordpress.com/2020/05/30/imparare-react-analizzando-casi-concreti-da-inclassificato-a-grande-maestro-in-sette-giorni/ e sposare subito la nuova filosofia che diventerà una sorta di esercizio di addestramento fatto su un cavallo indisponente e burrascoso che non vorrà lasciarsi ammansire in vista del palio!

web design umbria
game development, web design Umbria, web developer Umbria

Aspettando Godot: non é Beckett ma Game Development

Strano, digitando Godot su un motore di ricerca mi aspetterei di trovare informazioni sul teatro dell’ assurdo e https://it.wikipedia.org/wiki/Samuel_Beckett e quindi sullo strano sig. Godot che se ne va in giro a passeggiare con la mascherina nella fase due aspettando qualcuno. Invece il primo risultato della SERP riporta: https://godotengine.org/ il cui claim è guarda un pò proprio un famigliare “Il motore di gioco che hai aspettato“. Ci sono alcune buone notizie immediate. La piattaforma di sviluppo è liberamente usabile senza restrizioni e anche open source! E’ finita l’attesa spasmodica delle nostre teatrali pulsioni! Ha inoltre un vasto eco di appassionati sviluppatori che continuano a far crescere questo potente engine per i giochi. Godot usa un linguaggio di scripting simile a Pyton che si chiama GDScript. I primi passi da fare sono scaricare dal sito indicato l’eseguibile da decomprimere e prendere familiarità con i nodi e le escene e la personalizzazione degli oggetti e dei caratteri. Questa piattaforma segue una logica architetturale a nodi. Godot user interface supporta anche i suoni a corredo creatico e naturalmente consente di creare nemici a piacere e collezioni di oggetto. Tutto questo lo fa con una interfaccia enormemente semplificata rispetto a Unity dove posso anche scegliere di mettere in piedi costruzioni di gioco 3D. I nodi servono a gestire le scene e possiamo mettere in moto delle collection di location che avranno a sostegno quindi dei nodi che come struttura root ramificazione e figli ricorda proprio il DOM dei documenti html manipolabili con javascript. Un nodo può essere associato alla scena quindi e la generazione di fatto crea un file sul file system del progetto con estensione TSCN, per esempio MainScene.tscn. Il modo migliore per capire come funziona la piattaforma è riportare in vita il deprecato FLASH, un portentoso software che qualche anno fa creava fantastiche animazione usando la metafora dello STAGE, dove gli elementi venivano posizionati a livelli uno sopra l’altro. Qui è lo stesso: un nodo potrebbe fare da cornice principale, un altro potrebbe aiutarci l’istanza nemici, un altro potrebbe avere da controllare ostacoli e pericoli etc etc fino a scomporre tutti gli elementi primari che formano la scena che diventa un gigantesco affresco armonico e funzionale. Ad esempio devo creare un elemento nel progetto chiamato PLAYER.TSCN che sarà un nodo figlio del blocco main. Questo giocatore lo posso posizionare con una griglia di precisione disposta sulla destra inserendo dei valori numerici sugli assi X e Y e posso anche decidere di inserire un’ area di collisione sempre gestendone da pannello di controllo INSPECTOR le proprietà. Il programma mi fa istanziare gli oggetti per cui da figlio posso ereditare caratteristiche o proprietà tipiche del papà menzionato. Le griglie di costruzione per le scene e i personaggi sono sagomate millimetricamente per posizionare ad esempio blocchi o ostacoli lungo il cammino dell’ eroe con assoluta precisione. Una volta definite le possibilità di movimento del personaggio giocatore che può saltare usando la gravità e muoversi avanti e indietro per aggirare gli ostacoli possiamo disegnare gli scenari di gioco con i blocchi di piramide o simili messi a disposizione dagli asset-risorse della piattaforma. Certo è che la fase di pianificazione per creare un gioco deve tenere conto di innumerevoli fattori che sono sempre tanti: dobbiamo considerare situazioni in cui l’eroe saltando per esempio raccoglie delle monete e quindi incrementa uno SCORE, oppure situazioni dove un nemico entra in collisione con noi ed esplodiamo o in alternativa ostacoli vaganti con certe caratteristiche di movimento da definire, per cui servirà una FUNZIONE DI RIPRISTINO per continuare il gioco azzerando tutti i progressi. Servirà un dispositivo di ripresa cinematografica attivabile da INSPECTOR che seguirà i movimenti del nostro prode Achille, per cui saltando, correndo ed evitando ostacoli il nostro sguardo è dinamico e segue noi che siamo i protagonisti mentre la location di sfondo scorre. Le dinamiche da prevedere sono sempre tante e complesse: se devo saltare e afferrare due euro intendendo graficamente un doblone d’oro raggiungibile alcuni metri sopra la mia testa che afferro volando, quel nodo al momento del contatto deve ubbidire a una funzione che dissolve il valore della moneta per alimentare il mio contatore e contemporaneamente attivare la possibilità di afferrare il prossimo target da raggiungere sempre saltellando dinamicamente come un canguro. Come se non bastasse al momento della digestione per indicare un successo dovrò richiamare un suono sintomatico che l’operazione di ingurgitamento è stata piacevole. Con Godot tutti questi aspetti della progettazione si possono controllare ma soprattutto alle prime armi la piattaforma ci mette a disposizione con l’import alcuni progetti che si possono vivisezionare e studiare per vedere l’effetto che fa e come sono strutturati. Si possono quindi richiamare delle librerie che hanno oggetti figli che a loro volta diventeranno padri per le nostre mainScene e in questo modo potremmo agganciare dei nodi, richiamare dei valori etc, mettere a disposizioni numerosi metodi per soddisfare le nostre esigenze e anche richiamare delle risorse utili con User Interface per fornire audio tematico per il nostro game! Godot, quello del teatro, ci dispiace ma l’attesa è finita: https://godotengine.org/

web marketing umbria
web design Umbria, web marketing Umbria

Un brand vincente? Istruzioni per l’uso!

web marketing umbriaIl personal brand questo sconosciuto. In tempi oscuri di competività totale dove il mercato é aggredito di pescecani famelici pronti a smembrare i competitors in un sol boccone, un brand timido e barcollante difficilmente può sopravvivere a lungo nell’ oceano blu. Figuriamoci a farlo emergere in maniera consistente! Il paradosso poi è quello dell’ eccellenzaa raggiunta: più facciamo corsi e impariamo tecniche di diffusione per veicolare con il nostro messaggio comunicativo e sembra quasi che meno otteniamo risultati, perché ovviamente un conto é l’apprendimento e un altro é il realizzare il come e metterlo in pratica. Del resto come dicono gli esperti oggi non basta più avere la moglie ubriaca, l’uva nella vigna e la botte piena ma serve anche un corollario di dettaglio per raggiungere l’eccellenza che ci costringe anche ad allantonare le volpi che insidiano il nostro raccolto. Velocità, concorrenza, trasformazioni sociali: come fa un professionista a tenere il passo mutando di continuo le sue strategie e il suo ruolo in un campo di gioco che cambia continuamente le sue regole? E’ chiaro che é facile perdere la bussola e non ci si riconosce mentre si lavora per centrare un obiettivo. Tuttavia con una oculata gestione nella fase promozionale possiamo arrivare a farci percepire come capaci, credibili, affidabili nel settore. Il passaparola vecchio stampo non funziona più senza integrare il vecchio con il nuovo. E quindi? Come sfruttare le opportunità aperte dalla crisi? Come rivitalizzare il proprio business? Come diventare sempre più credibili e performanti? Certamente senza capacità relazionali non si va da nessuna parte, ma un professionista deve essere multitasking a 360 gradi e non é facile fare tutto insieme contemporaneamente senza decentrare e delegare, dando per scontato che la direzione resterà definita e anche lo sforzo profuso per andare oltre non subirà variazioni. Il mercato é saturo. Per vendere un prodotto servizio occorre fare breccia su una migliore promozione e avere un mercato di riferimento. La nostra identità deve emergere congruente ed etica. Il personal brand, vendiamo noi stessi trasmettendo un insieme di valori. Dobbweb marketing umbriaiamo posizionarci usando parole chiave , dobbiamo arrivare primi, scavarci una nicchia, farci un nome, dimostrare la nostra competenza, partecipare al mondo social delle condivisioni, metterci in evidenza con autorevolezza e rimanere focalizzato. Nel nostro brand confluiscono i nostri valori e attraverso questi faremo breccia nei nostri clienti per riuscire a fidelizzarli. Le situazioni di disagio spesso aiutano a mettere in piedi delle reazioni innovative, dobbiamo solo annusare e sfruttare queste opportunità. Gestire le relazioni con il cliente non é una impresa da poco. Ci sono sempre delle difficoltà e delle criticità che ci costringono a trovare delle soluzioni non convenzionali. Del resto i compartimenti stagni con cui sbattere il grugno sono tanti durante il tragitto: gestione del personale, gestione delle finanze, commercializzazione prodotto. Essere ciò che si é e diventare ciò che si é capaci di diventare é questo lo scopo della vita ( R L Stevenson), realizzare un percorso compiuto di trasformazione. Un viaggio così richiede ottimismo e propositività. L’atteggiamento mentale positivo influenzerà i nostri pensieri e le nostre azioni, attivando un circolo vizioso e aiutandoci a superare le convinzioni limitanti. Non possiamo risolvere i problemi allo stesso livello che li ha generati. La conoscenza di elementi nuovi rispetto alla concorrenza ci aiuterà a realizzare il “first”. Dobbiamo avere il coraggio di lanciare soluzioni dirompenti, non solo per l’eccentricità di innovare, ma per le necessità pratiche di imprimere una svolta al proprio business con l’azione, senza inutili dispersioni filosofiche. Come dicono gli esperti, le persone che attendono il passaggio della cometa e una congiunzione astrale favorevole prima di agire non agiranno mai. Il professionista di oggi deve lavorare sulla percezione e l’immagine pubblica di se. Cinquanta anni fa bastava uno studio prestigioso, un bel vestito alla moda, un minimo di galanteria e la propria nicchia era automaticamente conquistata. Ma oggi non funziona più, la saturazione rende tutto più complesso: il cliente vuole sapere vita, morte e miracoli dell’ imprenditore con cui entrano in contatto. Distinguersi in mezzo alla concorrenza é importante. Il professionista moderno deve essere superman: dinamicamente deve gestire il tempo e pianificare il futuro con una vision, deve sapersi autovalutare e mettere in discussione quando qualcosa non funziona, deve delegare e inventare, driblare e proporre. Devono sviluppare una visione chiara del domani. Devono proporre trasparenza e visibilità di intenti. Devono mostrare, far vedere, usare anche i media per realizzare video. La genuinità dice la sua, il manierismo barocco crea solo zone di ambiguità. Riposizioniamoci sul brand, ritagliamoci una fetta di mercato specifico per poterci distinguere. Saper fare o conquistare la fiducia di un maggior numero di persone? La seconda che ho detto! La competizione sul mercato e il rapido mutamento dei tempi devono costringerci a inventare situazioni nuove e tempestive. Dobbiamo formarci e migliorare le nostre competenze. Dobbiamo documentarci, cercare nuove soluzioni per problemi nuovi che prima non esistevano. Prendere coscienza del linguaggio é il primo passo. Le parole producono delle reazioni emotive. Dobbiamo stare molto attenti nella nostra comunicazione e suscitare sensazioni positive nell’ interlocutore, proporre una esperienza distensiva e propositiva. Formazione, promozione e gestione sono le chiavi che aprono le porte a un brand di successo. Vedremo nello specifico ognuno di questi cassetti prossimamente. Per ora abbiamo solo introdutto il tema della reputation brand e dato una idea della complessità degli argomenti che si nascondono dietro alla vendita e alla natura di qualsiasi business! Superare la mediocrità cercando nuovi stimoli e nuove motivazioni per raggiungere l’eccellenza é l’obiettivo da perseguire.

php, web design Umbria, web marketing Umbria

PHP per aspiranti programmatori – A overview

PHP: Hypertext Preprocessor (PHP) è un linguaggio di scripting open source molto popolare e gratuito. Gli script PHP vengono eseguiti sul server. Ecco una breve lista di ciò che PHP è in grado di:

– Generazione di contenuto di pagina dinamico
– Creazione, apertura, lettura, scrittura, eliminazione e chiusura di file sul server
– Raccolta dei dati del modulo
– Aggiunta, eliminazione e modifica delle informazioni memorizzate nel database
– controllare l’accesso dell’utente
– crittografia dei dati
– e altro ancora!

Prima di iniziare questo tutorial, dovresti avere una conoscenza di base dell’HTML. PHP ha abbastanza potenza per lavorare al centro di WordPress, il sistema di blogging più attivo sul web. Ha anche il livello di profondità richiesto per eseguire Facebook, il più grande social network del web! PHP funziona su numerose e diverse piattaforme, tra cui Windows, Linux, Unix, Mac OS X e così via.

PHP è compatibile con quasi tutti i server moderni, come Apache, IIS e altro.
PHP supporta un’ampia gamma di database.
PHP è gratis!
PHP è facile da imparare e funziona in modo efficiente sul lato server.

Uno script PHP inizia con <? Php e termina con?>:

<code>
<?php
// PHP code goes here
?>
</code>

Ecco un esempio di un semplice file PHP. Lo script PHP utilizza una funzione incorporata chiamata “echo” per emettere il testo “Hello World!” su una pagina web.

<code>
<html>
<head>
<title>My First PHP Page</title>
</head>
<body>
<?php
echo “Hello World!”;
?>
</body>
</html>
</code>

Le istruzioni PHP terminano con il punto e virgola (;). In alternativa, possiamo includere PHP nel tag HTML.




My First PHP Page



echo "Hello World!";

</body>
</html>
</code>

However, the latest version of PHP removes support for <script language="php"> tags. As such, we recommend using <?php ?> exclusively. Puoi anche usare i tag PHP abbreviati, <? ?>, a condizione che siano supportati dal server.

<code>
<?
echo "Hello World!";
?>
</code>

Tuttavia, <? Php?>, Come standard ufficiale, è il modo consigliato di definire gli script PHP. PHP ha una funzione "echo" integrata, che viene utilizzata per l'output del testo. In realtà, non è una funzione; è un costrutto linguistico. In quanto tale, non richiede parentesi. Emettiamo un testo.

<code>
<?php
echo "I love PHP!";
?>
</code>

Il testo dovrebbe essere in virgolette singole o doppie. Ogni istruzione PHP deve terminare con un punto e virgola.

<code>
<?php
echo "A";
echo "B";
echo "C";
?>
</code>

Dimenticando di aggiungere un punto e virgola alla fine di una dichiarazione si ha un errore. Il markup HTML può essere aggiunto al testo nell'istruzione echo.

<code>
<?php
echo "<strong>This is a bold text.</strong>";
?>
</code>

Nel codice PHP, un commento è una riga che non viene eseguita come parte del programma. Puoi usare i commenti per comunicare agli altri in modo che capiscano cosa stai facendo, o come promemoria per te stesso di ciò che hai fatto.

Un commento a riga singola inizia con //:

<code>
<?php
echo "<p>Hello World!</p>";
// This is a single-line comment
echo "<p>I am learning PHP!</p>";
echo "<p>This is my first program!</p>";
?>
</code>

I commenti a più righe vengono utilizzati per comporre commenti che richiedono più di una singola riga.
Un commento su più righe inizia con / * e termina con * /.

<code>
<?php
echo "<p>Hello World!</p>";
/*
This is a multi-line comment block
that spans over
multiple lines
*/
echo "<p>I am learning PHP!</p>";
echo "<p>This is my first program!</p>";
?>
</code>

Aggiungere commenti mentre scrivi il tuo codice è una buona pratica. Aiuta gli altri a capire il tuo pensiero e ti aiuta a ricordare più facilmente i tuoi processi mentali quando fai riferimento al tuo codice in seguito.

Le variabili sono usate come "contenitori" in cui memorizziamo le informazioni.
Una variabile PHP inizia con un segno di dollaro ($), che è seguito dal nome della variabile. $ nome_variabile = valore;

Regole per le variabili PHP:

- Un nome di variabile deve iniziare con una lettera o un trattino basso
- Un nome di variabile non può iniziare con un numero
- Un nome di variabile può contenere solo caratteri alfanumerici e caratteri di sottolineatura (A-z, 0-9 e _)
- I nomi delle variabili fanno distinzione tra maiuscole e minuscole ($ name e $ NAME sarebbero due variabili diverse)

<code>
<?php
$name = 'John';
$age = 25;
echo $name;
// Outputs 'John'
?>
</code>

Nell'esempio sopra, si noti che non è necessario indicare a PHP quale tipo di dati è la variabile. PHP converte automaticamente la variabile nel tipo di dati corretto, in base al suo valore. A differenza di altri linguaggi di programmazione, PHP non ha comandi per dichiarare una variabile. Viene creato nel momento in cui prima si assegna un valore ad esso. Le costanti sono simili alle variabili ad eccezione del fatto che non possono essere modificate o indefinite dopo che sono state definite. Inizia il nome della tua costante con una lettera o un trattino basso. Per creare una costante, utilizzare la funzione define (): define (nome, valore, case-insensitive) parametri:

nome: specifica il nome della costante;
valore: specifica il valore della costante;
senza distinzione tra maiuscole e minuscole: specifica se il nome della costante deve essere senza distinzione tra maiuscole e minuscole. Il valore predefinito è falso;

L'esempio seguente crea una costante con un nome con distinzione tra maiuscole e minuscole:

<code>
<?php
define("MSG", "Hi Umbriaway!");
echo MSG;

// Outputs "Hi Umbriaway!"
?>
</code>

L'esempio seguente crea una costante con un nome insensibile alle maiuscole e minuscole:

<code>
<?php
define("MSG", "Hi Umbriaway!", true);
echo msg;

// Outputs "Hi Umbriaway!"
?>
</code>

Le variabili possono memorizzare una varietà di tipi di dati. Tipi di dati supportati da PHP: String, Integer, Float, Boolean, Array, Object, NULL, Resource.

Stringa PHP. Una stringa è una sequenza di caratteri, come "Hello world!". Una stringa può essere qualsiasi testo all'interno di un insieme di virgolette singole o doppie.

<code>
<?php
$string1 = "Hello world!"; //double quotes
$string2 = 'Hello world!'; //single quotes
?>
</code>

È possibile unire due stringhe usando l'operatore di concatenazione punto (.). Ad esempio:

echo $ s1. $ s2

PHP intero. Un numero intero è un numero intero (senza decimali) che deve corrispondere ai seguenti criteri:

- Non può contenere virgole o spazi vuoti
- Non deve avere un punto decimale
- Può essere positivo o negativo

<code>
<?php
$int1 = 42; // positive number
$int2 = -42; // negative number
?>
</code>

Le variabili possono memorizzare una varietà di tipi di dati. Un numero in virgola mobile o in virgola mobile è un numero che include un punto decimale.

<code>
<?php
$x = 42.168;
?>
</code>

Un booleano può essere rappresentato solo da uno dei due stati VERO o FALSO:

<code>
<?php
$x = true; $y = false;
?>
</code>

Le booleane vengono spesso utilizzate nei test condizionali, che verranno trattati più avanti nel corso.
La maggior parte dei tipi di dati può essere utilizzata in combinazione tra loro. In questo esempio, stringa e numero intero vengono messi insieme per determinare la somma di due numeri.

<code>
<?php
$str = "10";
$int = 20;
$sum = $str + $int;
echo ($sum);

// Outputs 30
?>
</code>

PHP converte automaticamente ogni variabile nel tipo di dati corretto, in base al suo valore. Questo è il motivo per cui la variabile $ str viene trattata come un numero nell'aggiunta. Le variabili PHP possono essere dichiarate ovunque nello script. L'ambito di una variabile è la parte dello script in cui la variabile può essere referenziata o utilizzata.

Gli ambiti di variabili più utilizzati di PHP sono locali, globali.
Una variabile dichiarata all'esterno di una funzione ha un ambito globale.
Una variabile dichiarata all'interno di una funzione ha un ambito locale e può essere raggiunta solo all'interno di tale funzione.

Considera il seguente esempio.

<code>
<?php
$name = 'David';
function getName() {
echo $name;
}
getName();

// Error: Undefined variable: name
?>
</code>

Questo script genererà un errore, poiché la variabile $ name ha un ambito globale e non è accessibile all'interno della funzione getName (). Le funzioni saranno discusse nelle prossime lezioni.

La parola chiave globale viene utilizzata per accedere a una variabile globale da una funzione.
Per fare ciò, utilizzare la parola chiave globale all'interno della funzione, prima delle variabili.

<code>
<?php
$name = 'David';
function getName() {
global $name;
echo $name;
}
getName();

//Outputs 'David'
?>
</code>

Con PHP, puoi usare una variabile per specificare il nome di un'altra variabile. Quindi, una variabile variabile considera il valore di un'altra variabile come suo nome. Per esempio:

<code>
<?php
$a = 'hello';
$hello = "Hi!";
echo $$a;

// Outputs 'Hi!'
?>
</code>

$$ a è una variabile che utilizza il valore di un'altra variabile, $ a, come il suo nome. Il valore di $ a è uguale a "ciao". La variabile risultante è $ hello, che contiene il valore "Ciao!"

Gli operatori eseguono operazioni su variabili e valori.

<code>
<?php
$num1 = 8;
$num2 = 6;

//Addition
echo $num1 + $num2; //14

//Subtraction
echo $num1 - $num2; //2

//Multiplication
echo $num1 * $num2; //48

//Division
echo $num1 / $num2; //1.33333333333
?>
</code>

L'operatore modulo, rappresentato dal segno%, restituisce il resto della divisione del primo operando per il secondo operando:

<code>
<?php
$x = 14;
$y = 3;
echo $x % $y; // 2
?>
</code>

Se si utilizzano numeri in virgola mobile con l'operatore modulo, verranno convertiti in numeri interi prima dell'operazione.

Gli operatori di incremento vengono utilizzati per incrementare il valore di una variabile. Gli operatori di decremento vengono utilizzati per decrementare il valore di una variabile.

<code>
$x++; // equivalent to $x = $x+1;
$x--; // equivalent to $x = $x-1;
</code>

Gli operatori di incremento e decremento precedono o seguono una variabile.

<code>
$x++; // post-increment
$x--; // post-decrement
++$x; // pre-increment
--$x; // pre-decrement
</code>

La differenza è che il post-incremento restituisce il valore originale prima che cambi la variabile, mentre il pre-incremento cambia prima la variabile e poi restituisce il valore.

Esempio:

<code>
$a = 2; $b = $a++; // $a=3, $b=2

$a = 2; $b = ++$a; // $a=3, $b=3
<code>

Gli operatori di incremento vengono utilizzati per incrementare il valore di una variabile. Gli operatori di assegnazione sono utilizzati per scrivere valori in variabili.

<code>
<?php
$x = 50;
$x += 100;
echo $x;

// Outputs: 150
?>
</code>

Gli operatori di confronto confrontano due valori (numeri o stringhe). Gli operatori di confronto vengono utilizzati all'interno di istruzioni condizionali e valutano TRUE o FALSE. Stai attento a usare == e ===; il primo non controlla il tipo di dati.


Operatori di confronto aggiuntivi:


Gli operatori logici vengono utilizzati per combinare istruzioni condizionali.

Un array è una variabile speciale, che può contenere più di un valore alla volta.
Se si dispone di un elenco di elementi (ad esempio un elenco di nomi), memorizzarli in variabili singole sarebbe simile a questo:

$name1 = "David";
$name2 = "Amy";
$name3 = "John";

Ma cosa succede se hai 100 nomi nella tua lista? La soluzione: crea un array! Gli array numerici o indicizzati associano un indice numerico con i loro valori. L'indice può essere assegnato automaticamente (l'indice parte sempre da 0), come questo:

$names = array("David", "Amy", "John");

In alternativa, puoi assegnare il tuo indice manualmente.

$names[0] = "David";
$names[1] = "Amy";
$names[2] = "John";

Abbiamo definito un array chiamato $ nomi che memorizza tre valori. È possibile accedere agli elementi dell'array tramite i loro indici. Ricorda che il primo indice dell' array non é 1 ma 0!

echo $names[1]; // Outputs "Amy"

Puoi avere interi, stringhe e altri tipi di dati insieme in un array. Esempio:

<code>
<?php
$myArray[0] = "John";
$myArray[1] = "<strong>PHP</strong>";
$myArray[2] = 21;

echo "$myArray[0] is $myArray[2] and knows $myArray[1]";

// Outputs "John is 21 and knows PHP"
?>
</code>

Gli array associativi sono array che utilizzano chiavi con nome assegnate a loro. Esistono due modi per creare un array associativo:

<code>
$people = array("David"=>"27", "Amy"=>"21", "John"=>"42");
// or
$people['David'] = "27";
$people['Amy'] = "21";
$people['John'] = "42";
</code>

Nel primo esempio, si noti l'uso dei segni => nell'assegnazione di valori alle chiavi nominate. Utilizzare le chiavi nominate per accedere ai membri dell'array.

<code>
$people = array("David"=>"27", "Amy"=>"21", "John"=>"42");
echo $people['Amy']; // Outputs 21"
</code>

Una matrice multidimensionale contiene uno o più array. La dimensione di una matrice indica il numero di indici che occorrerebbe per selezionare un elemento.

- Per un array bidimensionale, sono necessari due indici per selezionare un elemento
- Per un array tridimensionale, hai bisogno di tre indici per selezionare un elemento

Array con più di tre livelli di profondità sono difficili da gestire. Creiamo un array bidimensionale che contiene 3 matrici:

$people = array(
'online'=>array('David', 'Amy'),
'offline'=>array('John', 'Rob', 'Jack'),
'away'=>array('Arthur', 'Daniel')
);

Ora la matrice bidimensionale $ persone contiene 3 matrici e ha due indici: riga e colonna. Per accedere agli elementi dell'array $ people, dobbiamo puntare ai due indici.

<code>
$people = array(
'online'=>array('David', 'Amy'),
'offline'=>array('John', 'Rob', 'Jack'),
'away'=>array('Arthur', 'Daniel')
);
</code>

Ora la matrice bidimensionale $ persone contiene 3 matrici e ha due indici: riga e colonna. Per accedere agli elementi dell'array $ people, dobbiamo puntare ai due indici.

<code>
echo $people['online'][0]; //Outputs "David"
echo $people['away'][1]; //Outputs "Daniel"
</code>

Gli array dell'array multidimensionale possono essere sia numerici che associativi. In uno dei prossimi articoli affronteremo con Umbriaway Consulting la spinosa questione delle strutture di controllo, in modo da poter gestire con cicli e istruzioni condizionali i nostri dati

formazione, web design Umbria

Pensa come un grande maestro nel settore vendita, puntata 23 a cura di web design Umbria

Quando é stata l’ultima volta che siete andati ad acquistare qualcosa chiede web design Umbria? Che vi ricordate i tempi della dissertazione, la presenza, i ritmi, l’uso particolare di vocaboli, la gestualità, quel venditore su quali leve motivazionali insisteva per vendervi il suo prodotto? Siete rimasti impressionati da cosa in particolare? Occhi? Parole? Presenza? Il messaggio come tutti sanno ma web design Umbria lo ricalca, passa tre aspetti misteriosi della comunicazione, paraverbale, non verbale e verbale e stranamente il non verbale é una parte segnata dalle statistiche come molto importante. Nella comunicazione verbale la sorgente deve adeguare il passaggio delle sue informazioni alle capacità di ricezioni semantiche del destinatario, ricalca web design Umbria. La comunicazione é un processo digitale di codifica e di decodifica di simboli e convenzioni semantiche esattamente come avviene per la famosa combinazione di zero e uno nel codice binario. Prendiamo ad esempio le tre forme diverse di dire acqua in inglese , tedesco, francese che sono rispettivamente water, wasser, eau. La sostanza liquida é la stessa fa notare web design Umbria, ma la codifica é diversa e cambia da cultura e cultura da luogo in luogo. Certamente la richhezza delle lingue é stata penalizzata anche dall’ avvento di Internet e della sua prosciugata mappatura di espressioni veloci e simboli grafici emozionali rapidi. Leggere é un esercizio che accresce il potere descrittivo della realtà ed é attività da fagocitare al posto della TV per esempio che propone invece modelli passivi di sviluppo. Ma si può anche comunicare con i gesti e senza suono, certi atteggiamenti, certe posture ci dicono molto anche senza dire niente, evidenzia web design Umbria. Se si dovesse lavorare sulla voce su quante proprietà e qualità si dovrebbe intervenire? timbro, ritmo, cadenza, tono, modulazione, dizione; l’uso della voce e delle sue assonanze genera stati d’animo diversi sull’ interlocutore ed effetti diversi. La gestione della variabilità fonetica é uno dei fulcri dell’ attività teatrale per esempio. La voce viene registrata e riconosciuta aprescindere dal messaggio. Del resto le inflessioni e le pause e le accellerazioni che gnera ad esempio l’ipnotista nel suo lavoro per ottenere effetti suggestivi e paralizzanti sul paziente fanno leva proprio sulla fonetica e la riconoscibilità del timbro vocale. Il bravo venditore quindi per chiudere il cerchio deve modulare bene la voce adattandola alle esigenze dell’ interlocutore, sottolinea web design Umbria. Occorre quindi esercitarsi nell’ uso della voce, alzando il timbro, introducendo le pause nei punti giusti oppure abbassando il tono quando serve. amplificando o riducendo o modulando per ottenere l’effetto giusto e l’obiettivo voluto che per l’esercente é la vendita del suo prodotto servizio. Le frasi cambiano significato enfatizzando alcune parole in un modo piuttosto che in un altro. Una frase come “la nostra azienda é leader nel settore dei tessuti” ottiene grande beneficio esaltando le caratteristiche della parola NOSTRA. A seconda di come viene elaborata la nostra voce l’interlocutore coglierà alcune sfumature o meno. La voce evidenzia il contesto verbale e indirizza il messaggio subliminale. La sottolineatura analogica in contrasto con la comunicazione digitale trae grandi benefici da questo modo di mettere in evidenza particolari suoni insiti in una frase. La comunicazione extra-verbale che é la parte paraverbale e non verbale viene definita anche comunicazione analogica. Provate ad esempio a trasferire dei concetti o delle frasi parlando con i numeri ad esempio per sperimentare l’effetto che fa conclude web design Umbria.