Я пытаюсь понять, что означает типобезопасность языка. В языке с динамической типизацией проверка типа выполняется во время выполнения, например, если я запускаю следующий PHP-код:
<?php
class MyClass
{
}
// Create a MyClass instance
$mc = new MyClass();
// Create an int variable
$i = 1234;
// Add $mc and $i
$result = $mc + $i;
?>
Я получу сообщение об ошибке, потому что + operator
не поддерживает тип данных MyClass
. Таким образом, в основном проверка типов выполнялась во время выполнения.
Означает ли безопасность типов, что проверка типа выполняется независимо от того, выполняется ли она во время компиляции или во время выполнения, или это означает, что проверка типа должна выполняться только во время компиляции, и поэтому каждой переменной должен быть явно задан тип данных (например, C , Паскаль, Java и др.).
function x() { $i = 0; if (true) { $i = "bla"; } return $i; }
... - person Royal Bg   schedule 20.01.2015if()
- person Royal Bg   schedule 20.01.2015BigDecimal.divide
,NullPointerException
, ...) - person Elias Van Ootegem   schedule 20.01.2015