<?php
class User
{
const STATE_BLOCKED = 0;
const STATE_VALIDATED = 1;
const STATE_NOT_VALIDATED = 2;
public static $states = [
User::STATE_BLOCKED => 'Bloqueado',
User::STATE_VALIDATED => 'Normal',
User::STATE_NOT_VALIDATED => 'Pendiente de validaciĆ³n',
];
public function setState($state)
{
if (!ctype_digit($state) or !array_key_exists($state, User::$states)) {
throw new \InvalidArgumentException("bad state '$state'");
}
echo 'ok';
}
public function setUnvalidated()
{
$this->setState(User::STATE_NOT_VALIDATED);
}
}
$u = new User();
$u->setUnvalidated();
Deprecated: ctype_digit(): Argument of type int will be interpreted as string in the future in /in/jNi1Z on line 18
Fatal error: Uncaught InvalidArgumentException: bad state '2' in /in/jNi1Z:19
Stack trace:
#0 /in/jNi1Z(26): User->setState(2)
#1 /in/jNi1Z(31): User->setUnvalidated()
#2 {main}
thrown in /in/jNi1Z on line 19
Process exited with code 255.
Fatal error: Uncaught InvalidArgumentException: bad state '2' in /in/jNi1Z:19
Stack trace:
#0 /in/jNi1Z(26): User->setState(2)
#1 /in/jNi1Z(31): User->setUnvalidated()
#2 {main}
thrown in /in/jNi1Z on line 19
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'bad state '2'' in /in/jNi1Z:19
Stack trace:
#0 /in/jNi1Z(26): User->setState(2)
#1 /in/jNi1Z(31): User->setUnvalidated()
#2 {main}
thrown in /in/jNi1Z on line 19
Process exited with code 255.