original_string: public function pkValue()
      {
          if ($args = func_get_args()) {
              !is_array($args[0]) || $args = array_shift($args);
              $args = array_values($args);
              foreach ($args as $key=>$arg)
                  $this->{$this->_properties['primary_key'][$key]} = $arg;
  
              return $this;
          }
  
          $pk = array_intersect_key($this->_schema['values'],
              array_fill_keys($this->_properties['primary_key'], null));
  
          return count($pk)==0?null:(count($pk)==1?array_shift($pk):$pk);
      }
code: public function pkValue()
      {
          if ($args = func_get_args()) {
              !is_array($args[0]) || $args = array_shift($args);
              $args = array_values($args);
              foreach ($args as $key=>$arg)
                  $this->{$this->_properties['primary_key'][$key]} = $arg;
  
              return $this;
          }
  
          $pk = array_intersect_key($this->_schema['values'],
              array_fill_keys($this->_properties['primary_key'], null));
  
          return count($pk)==0?null:(count($pk)==1?array_shift($pk):$pk);
      }
code_tokens: public function pkValue ( ) { if ( $ args = func_get_args ( ) ) { ! is_array ( $ args [ 0 ] ) || $ args = array_shift ( $ args ) ; $ args = array_values ( $ args ) ; foreach ( $ args as $ key => $ arg ) $ this -> { $ this -> _properties [ 'primary_key' ] [ $ key ] } = $ arg ; return $ this ; } $ pk = array_intersect_key ( $ this -> _schema [ 'values' ] , array_fill_keys ( $ this -> _properties [ 'primary_key' ] , null ) ) ; return count ( $ pk ) == 0 ? null : ( count ( $ pk ) == 1 ? array_shift ( $ pk ) : $ pk ) ; }
docstring: Get PK Value
  @return mixed pk value
docstring_tokens: Get PK Value