php 的 range 函数行为

标签 php

PHP.net关于 range 函数的文档有点缺乏。当给定字符范围时,这些函数会产生意想不到的(无论如何对我来说)结果。

$m = 范围('A','z'); print_r($m); $m = 范围('~','"'); print_r($m);

我正在寻找可能明确定义其行为的引用。

最佳答案

问题是 range 将其参数视为整数,如果您给它一个单个字符,它会将其转换为 ASCII字符代码。

在第一种情况下,您将获取字符“A”(整数 65)和字符“z”(整数 122)之间的所有字符。对于我们这些具有 C(或类 C 语言)背景的人来说,这是预期的行为。

这是 PHP 将单个字符转换为其 ASCII 代码而不是像通常那样将字符串解析为整数的罕见情况之一。大多数 PHP 文档都能更好地告诉您何时会发生这种情况。 strpos例如,注释:

Needle

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

range 的文档对此出奇地安静。

关于php 的 range 函数行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3843131/

相关文章:

php - 在 Laravel 5 中打开 autoload.php 失败

php - 确定 MySQL Select 的逻辑 - 预订系统

php - php F3框架中使用ORM Axon的select语句

php - 确保我在 Laravel 5 中获得了正确的外键语法

php - 使用php数据制作表格

Php Ajax - 一个页面中的多个调用

PHP 打算用作 css 但用作 MIME 类型 text/html

php - 从 mysql 中删除它喜欢数字的记录

php - MySQL 行已插入但未保存?

javascript - 如何在浏览器上点击后退按钮和页面刷新后重新更新查询