code: public static function OCTTOBIN($x, $places = null)
      {
          $x = Functions::flattenSingleValue($x);
          $places = Functions::flattenSingleValue($places);
  
          if (is_bool($x)) {
              return Functions::VALUE();
          }
          $x = (string) $x;
          if (preg_match_all('/[01234567]/', $x, $out) != strlen($x)) {
              return Functions::NAN();
          }
  
          return self::DECTOBIN(self::OCTTODEC($x), $places);
      }
docs: OCTTOBIN.
  
  Return an octal value as binary.
  
  Excel Function:
  OCT2BIN(x[,places])
  
  @category Engineering Functions
  
  @param string $x The octal number you want to convert. Number may not
  contain more than 10 characters. The most significant
  bit of number is the sign bit. The remaining 29 bits
  are magnitude bits. Negative numbers are represented
  using two's-complement notation.
  If number is negative, OCT2BIN ignores places and returns
  a 10-character binary number.
  If number is negative, it cannot be less than 7777777000,
  and if number is positive, it cannot be greater than 777.
  If number is not a valid octal number, OCT2BIN returns
  the #NUM! error value.
  If OCT2BIN requires more than places characters, it
  returns the #NUM! error value.
  @param int $places The number of characters to use. If places is omitted,
  OCT2BIN uses the minimum number of characters necessary.
  Places is useful for padding the return value with
  leading 0s (zeros).
  If places is not an integer, it is truncated.
  If places is nonnumeric, OCT2BIN returns the #VALUE!
  error value.
  If places is negative, OCT2BIN returns the #NUM! error
  value.
  
  @return string