Come già accennato, i sistemi "forti" e "deboli" sono malati -defined:
'Languages are often colloquially referred to as "strongly typed" or
"weakly typed". In fact, there is no universally accepted definition
of what these terms mean. In general, there are more precise terms to
represent the differences between type systems that lead people to
call them "strong" or "weak"'.
I tipi statici possono essere verificati al momento della compilazione. Il compilatore dispone di informazioni sufficienti per verificare i tipi statici prima dell'esecuzione di un programma. (Se viene utilizzata una variabile tipizzata in cui il tipo non è previsto, si tratta di un errore del compilatore.) Tipi dinamici non può essere perfettamente determinato al momento della compilazione. Questo non significa che le variabili nei linguaggi dinamici non hanno tipi. Significa semplicemente che non c'è modo di essere sicuri al 100% del tipo di una variabile fino al runtime.
Secondo le RFC di PHP per dichiarazione del tipo di reso e dichiarazione del tipo scalare , le dichiarazioni non tipizzate e le modalità di valutazione sono ancora consentite. Ciò significa che non tutto il PHP è tipizzato staticamente. Come tale, non ha senso chiamare PHP un linguaggio tipizzato staticamente. Invece, è un linguaggio tipizzato dinamicamente con un paio di caratteristiche di tipo statico.
Il fatto che la dichiarazione di tipo scalare RFC utilizzi effettivamente le definizioni "strict" e "weak" type sta dicendo. I PHP sono orgogliosi che non siano nerd linguistici. Questo non è né buono né cattivo. Significa solo che i progettisti di linguaggi si stanno concentrando su cose diverse rispetto, ad esempio, ai progettisti di Haskell.