original_string: public function findEntry(string $msgid, ?string $msgctxt = null, ?string $msgid_plural = null): ?PoEntry
      {
          $key = $this->createKey($msgid, $msgctxt, $msgid_plural);
          $entry = null;
  
          if (!empty($key) && isset($this->entries[$key])) {
              $entry = $this->entries[$key];
          }
  
          return $entry;
      }
code: public function findEntry(string $msgid, ?string $msgctxt = null, ?string $msgid_plural = null): ?PoEntry
      {
          $key = $this->createKey($msgid, $msgctxt, $msgid_plural);
          $entry = null;
  
          if (!empty($key) && isset($this->entries[$key])) {
              $entry = $this->entries[$key];
          }
  
          return $entry;
      }
code_tokens: public function findEntry ( string $ msgid , ? string $ msgctxt = null , ? string $ msgid_plural = null ) : ? PoEntry { $ key = $ this -> createKey ( $ msgid , $ msgctxt , $ msgid_plural ) ; $ entry = null ; if ( ! empty ( $ key ) && isset ( $ this -> entries [ $ key ] ) ) { $ entry = $ this -> entries [ $ key ] ; } return $ entry ; }
docstring: Get an entry based on key values - msgid, msgctxt and msgid_plural
  
  @param string      $msgid        the untranslated message of the entry
  @param string|null $msgctxt      the context of the entry, if any
  @param string|null $msgid_plural the untranslated plural message of the entry, if any
  
  @return PoEntry|null matching entry, or null if not found
docstring_tokens: Get an entry based on key values - msgid msgctxt and msgid_plural