php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #81352 Doc states getopt returns false when it really returns an empty array
Submitted: 2021-08-12 12:26 UTC Modified: 2021-08-12 15:19 UTC
From: edg at greenberg dot org Assigned:
Status: Open Package: PHP options/info functions
PHP Version: 7.4.22 OS: Centos 7
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: edg at greenberg dot org
New email:
PHP Version: OS:

 

 [2021-08-12 12:26 UTC] edg at greenberg dot org
Description:
------------
---
From manual page: https://php.net/function.getopt
---

ON the manual page for getopt it states:

> This function will return an array of option / argument pairs, or false on failure.

When there are no options, it returns an empty array.  

So my bug report is to suggest that you indicate that "false on failure" refers to some other kind of failure and that no options found is indicated by an empty array. 

Thanks


Test script:
---------------
$options = getopt('', ['help', 'limit:', 'loops:', 'endtime:', 'tomorrow', 'agency:']);

Expected result:
----------------
Based on the doc, if I call the script with no options, I expected failure. 

Actual result:
--------------
I got an empty array.  

Note that I'm quite happy with the empty array, but wish that things in the doc had been a bit less ambiguous.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-08-12 15:19 UTC] cmb@php.net
-Package: Documentation problem +Package: PHP options/info functions
 [2021-08-12 15:19 UTC] cmb@php.net
Prior to PHP 8.0.0, FALSE was returned if the function was called
with unexpected parameters or parameter types.  Most other
functions returned NULL in that case.  Anyhow, there is no need to
document that, since this is actually undefined behavior[1].

For all relevant PHP versions, FALSE will also be returned, if
neither $_SERVER nor $argv exists or are not arrays.

[1] <https://www.php.net/manual/en/functions.internal.php>
 [2022-11-26 06:42 UTC] schamberumarcelo at gmail dot com
getopt() will return an empty array if there is no error in splitting strings to args variable. GetOptions() will return a true value if the command line could be processed successfully. Otherwise, it will write error messages using die() and warn(). (https://www.imyccpay.com)github.com
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Nov 24 02:01:28 2024 UTC