PHPCfg\Operand::addWriteOp PHP Метод

addWriteOp() публичный Метод

public addWriteOp ( Op $op )
$op Op
    public function addWriteOp(Op $op)
    {
        foreach ($this->ops as $test) {
            if ($test === $op) {
                return $this;
            }
        }
        $this->ops[] = $op;
        return $this;
    }

Usage Example

Пример #1
0
 private function replaceOpVariable(Operand $from, Operand $to, Op $op)
 {
     foreach ($op->getVariableNames() as $name) {
         if (is_null($op->{$name})) {
             continue;
         }
         if (is_array($op->{$name})) {
             // SIGH, PHP won't let me do this directly (parses as $op->($name[$key]))
             $result = $op->{$name};
             $new = [];
             foreach ($result as $key => $value) {
                 if ($value === $from) {
                     $new[$key] = $to;
                     if ($op->isWriteVariable($name)) {
                         $to->addWriteOp($op);
                     } else {
                         $to->addUsage($op);
                     }
                 } else {
                     $new[$key] = $value;
                 }
             }
             $op->{$name} = $new;
         } elseif ($op->{$name} === $from) {
             $op->{$name} = $to;
             if ($op->isWriteVariable($name)) {
                 $to->addWriteOp($op);
             } else {
                 $to->addUsage($op);
             }
         }
     }
 }