PHP 功能在我当前的 PHP 版本中不可用
PHP function is not available in my current PHP Version
我想使用函数 array_key_first (PHP 7 >= 7.3.0).
我当前的PHP版本是7.2
的 "User Contributed Notes" 部分中的描述使用 "Polyfill"
如果我在 polyfill 所在的 index.php 中调用 array_key_first 函数,一切正常。
如果我在 PHP 自写 class 中调用 array_key_first 函数,它不起作用。
如何定义 "Polyfills" 以便它们 "globally" 可用?
我不想定义一个 class 方法并用 $this->array_key_first...
调用它
我在 index.php 文件中包含以下代码
if (!function_exists('array_key_first')) {
function array_key_first(array $array){
if (count($array)) {
reset($array);
return key($array);
}
return null;
}
}
感谢提示
我相信你可以使用 array_keys。
Array_keys 将按顺序获取所有键,其中 [0] 是第一个。
$arr = ["m" => 0,"b" => 1, "k" => 2,"a" => 3];
$key = array_keys($arr)[0];
echo $key; //m
如果我们查看此示例,您会发现 array_keys 不会更改数组中的位置。
它首先回显 0,即键 0。
然后我将它移动一步,它回显 1.
然后我们做数组键并再次检查位置是什么,它仍然是 1.
https://3v4l.org/bhoEZ
如果您没有使用基于作曲家的工作流程来包含文件(当您第一次需要 autoload.php 文件时,它可以自动包含文件),只有两种方法。
- 手动包含一个文件以在任何使用的地方定义函数
将 php.ini
文件更改为 'prepend' 文件(在主脚本运行之前包含一个 PHP 文件)
auto_prepend_file="/path/to/polyfill.php"
如果您使用的是共享主机,则不太可能更改 php.ini 文件。
polyfill 定义函数如下:
function array_key_first(array $array) { foreach ($array as $key => $value) { return $key; } }
您可以在之前调用 key()
[1] on the array to retrieve the first key, assuming that the array pointer is currently pointing at the first element, otherwise you would have to call reset()
[2],例如:
$array = ['a' => 1, 'b' => 2];
var_dump(key($array));
或
$array = ['a' => 1, 'b' => 2];
reset($array);
var_dump(key($array));
string(1) "a"
我想使用函数 array_key_first (PHP 7 >= 7.3.0).
我当前的PHP版本是7.2
的 "User Contributed Notes" 部分中的描述使用 "Polyfill"如果我在 polyfill 所在的 index.php 中调用 array_key_first 函数,一切正常。
如果我在 PHP 自写 class 中调用 array_key_first 函数,它不起作用。
如何定义 "Polyfills" 以便它们 "globally" 可用?
我不想定义一个 class 方法并用 $this->array_key_first...
调用它我在 index.php 文件中包含以下代码
if (!function_exists('array_key_first')) {
function array_key_first(array $array){
if (count($array)) {
reset($array);
return key($array);
}
return null;
}
}
感谢提示
我相信你可以使用 array_keys。
Array_keys 将按顺序获取所有键,其中 [0] 是第一个。
$arr = ["m" => 0,"b" => 1, "k" => 2,"a" => 3];
$key = array_keys($arr)[0];
echo $key; //m
如果我们查看此示例,您会发现 array_keys 不会更改数组中的位置。
它首先回显 0,即键 0。
然后我将它移动一步,它回显 1.
然后我们做数组键并再次检查位置是什么,它仍然是 1.
https://3v4l.org/bhoEZ
如果您没有使用基于作曲家的工作流程来包含文件(当您第一次需要 autoload.php 文件时,它可以自动包含文件),只有两种方法。
- 手动包含一个文件以在任何使用的地方定义函数
将
php.ini
文件更改为 'prepend' 文件(在主脚本运行之前包含一个 PHP 文件)auto_prepend_file="/path/to/polyfill.php"
如果您使用的是共享主机,则不太可能更改 php.ini 文件。
polyfill 定义函数如下:
function array_key_first(array $array) { foreach ($array as $key => $value) { return $key; } }
您可以在之前调用 key()
[1] on the array to retrieve the first key, assuming that the array pointer is currently pointing at the first element, otherwise you would have to call reset()
[2],例如:
$array = ['a' => 1, 'b' => 2];
var_dump(key($array));
或
$array = ['a' => 1, 'b' => 2];
reset($array);
var_dump(key($array));
string(1) "a"