Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function isAnd($var, $value, $operator = '==')
- {
- if(isset($var) && $var $operator $value)
- return true;
- }
- if(isAnd(1, 1, '===')) echo 'worked';
- class compare
- {
- function is($op1,$op2,$c)
- {
- $meth = array('===' => 'type_equal', '<' => 'less_than');
- if($method = $meth[$c]) {
- return $this->$method($op1,$op2);
- }
- return null; // or throw excp.
- }
- function type_equal($op1,$op2)
- {
- return $op1 === $op2;
- }
- function less_than($op1,$op2)
- {
- return $op1 < $op2;
- }
- }
- function num_cond ($var1, $op, $var2) {
- switch ($op) {
- case "=": return $var1 == $var2;
- case "!=": return $var1 != $var2;
- case ">=": return $var1 >= $var2;
- case "<=": return $var1 <= $var2;
- case ">": return $var1 > $var2;
- case "<": return $var1 < $var2;
- default: return true;
- }
- }
- $ops = array( "=", "!=", ">=", "<=", ">", "<" );
- $v1 = 1; $v2 = 5;
- foreach ($ops as $op) {
- if (num_cond($v1, $op, $v2)) echo "True ($v1 $op $v2)n"; else echo "False ($v1 $op $v2)n";
- }
- function isAnd($var, $value, $operator = '==') {
- return isset($var) && $var $operator $value;
- }
- isAnd($foo, 1, '===');
- isset($foo) && isAnd($foo, 1, '===');
- if(isset($var) && eval("return $var $operator $value"))
- return true;
- trait DynamicComparisons{
- private $operatorToMethodTranslation = [
- '==' => 'equal',
- '===' => 'totallyEqual',
- '!=' => 'notEqual',
- '>' => 'greaterThan',
- '<' => 'lessThan',
- ];
- protected function is($value_a, $operation, $value_b){
- if($method = $this->operatorToMethodTranslation[$operation]){
- return $this->$method($value_a, $value_b);
- }
- throw new Exception('Unknown Dynamic Operator.');
- }
- private function equal($value_a, $value_b){
- return $value_a == $value_b;
- }
- private function totallyEqual($value_a, $value_b){
- return $value_a === $value_b;
- }
- private function notEqual($value_a, $value_b){
- return $value_a != $value_b;
- }
- private function greaterThan($value_a, $value_b){
- return $value_a > $value_b;
- }
- private function lessThan($value_a, $value_b){
- return $value_a < $value_b;
- }
- private function greaterThanOrEqual($value_a, $value_b){
- return $value_a >= $value_b;
- }
- private function lessThanOrEqual($value_a, $value_b){
- return $value_a <= $value_b;
- }
- }
- function is_equal($a, $b) {
- return $a==$b;
- }
- function is_same($a, $b) {
- return $a===$b;
- }
- function is_greater_than($a, $b)
- ....
- $compare='is_equal';
- if ($compare($a, $b)) {
- ....
- $b = 10;
- $c = '+';
- $p = $a . $c. $b; // Forming a String equation
- $p = eval('return '.$p.';'); // Evaluating the Equation
- echo $p;
- 15
- $b = 10;
- $c = '==';
- $p = $a . $c. $b;
- $p = eval('return '.$p.';');
- echo $p;
- false
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement