No; PHP loves to autoconvert strings:
<?php
$foo = 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "-1.3e3"; // $foo is float (-1299)
$foo = 1 + "bob-1.3e3"; // $foo is integer (1)
$foo = 1 + "bob3"; // $foo is integer (1)
$foo = 1 + "10 Small Pigs"; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1; // $foo is float (11)
$foo = "10.0 pigs " + 1.0; // $foo is float (11)
?>
As commented, manual code scanning can detect ridiculous cases like that, and could be automated by hooking saves. PHPLint on-line is free and easy to use:
PHPLint report
PHPLint 1.1_20130803
Copyright 2013 by icosaedro.it di Umberto Salsi
This is free software; see the license for copying conditions.
More info: http://www.icosaedro.it/phplint/
BEGIN parsing of test-p4Gx1L
1: <?php
2: $a = "Hi ";
3: $b = "Bob";
4: $c = $a + $b;
$c = $a + $b;
\_ HERE
==== 4: ERROR: `EXPR + ...': expected number or array but found string
$c = $a + $b;
\_ HERE
==== 4: ERROR: `... + EXPR': expected number or array but found string
5:
6: echo $c;
7: ?>
END parsing of test-p4Gx1L
==== ?: notice: unused package `stdlib/dummy.php'
==== ?: notice: unused module `mysql'
==== ?: notice: unused module `pcre'
==== ?: notice: required module `standard'
Overall test results: 2 errors, 0 warnings.
Talking to MySQL can still produce unexpected results, though.