- assert: documentation ( source)
<?php
// Outside of the application, e.g. DB or some storage.
function addSomeIntegerFieldToDB($value)
{
$sql = 'INSERT INTO mytable (integer_field) VALUES (:int)';
// $st = $pdo->prepare($sql);
// $st->execute(array('int' => $value);
}
// the application:
global $conditional;
$conditional = true;
class X {
public function doSmth($id)
{
// Assertion will run independently of $conditional, thus preventing a wrong $id to be passed to ->doSmth() method
assert(is_int($id), \Exception('wot ar y doin'));
global $conditional;
if ($conditional) {
addSomeIntegerFieldToDB($id);
}
}
}
$obj = new X;
$obj->doSmth(13);