<?php
class TextOperator
{
const CONTAINS = 'contains';
const CONTAINS_NOT = 'containsnot';
}
abstract class Condition
{
protected $operator;
protected $value;
public function __construct($value, $operator)
{
$this->setValue($value);
$this->setOperator($operator);
}
abstract public function setOperator($operator);
abstract public function setValue($value);
public function getOperator()
{
return $this->operator;
}
public function getValue()
{
return $this->value;
}
}
class TextCondition extends Condition
{
public function __construct($value, $operator = TextOperator::CONTAINS)
{
parent::__construct($value, $operator);
}
public function setOperator($operator)
{
$this->operator = $operator;
}
public function setValue($value)
{
$this->value = (string)$value;
}
}
$cond1 = new TextCondition(TextOperator::CONTAINS, 'foo');
$cond2 = new TextCondition(TextOperator::CONTAINS, 'bar');
var_dump($cond1, $cond2);
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
object(TextCondition)#1 (2) {
["operator":protected]=>
string(3) "foo"
["value":protected]=>
string(8) "contains"
}
object(TextCondition)#2 (2) {
["operator":protected]=>
string(3) "bar"
["value":protected]=>
string(8) "contains"
}
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/LYKlG on line 5
Process exited with code 255.
Parse error: parse error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/LYKlG on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/LYKlG on line 5
Process exited with code 255.