测试“0”、“-0”、“0.0”、“00”时的 PHP 和 Perl 行为

2024-03-24

当 PHP/Perl 测试一个值时,我遇到了这个有趣的行为

print "0"   ? "Yes" : "No"; // => No
print "00"  ? "Yes" : "No"; // => Yes
print "0.0" ? "Yes" : "No"; // => Yes
print "-0"  ? "Yes" : "No"; // => Yes
print "+0"  ? "Yes" : "No"; // => Yes
print "0 "  ? "Yes" : "No"; // => Yes

所以看起来字符串中的数值并不重要,但是字符串有一个特定的情况"0".

最让我惊讶的是 Perl 确实有同样的行为。
为什么有一个特定的情况,字符串是完全"0"?


您正在使用三元运算符来检查真实性之前的表达式的?. The 真实性值的描述在Booleans https://www.php.net/manual/en/language.types.boolean.php部分:

转换为 bool 时,会考虑以下值false:

  • 布尔值false itself
  • 整数 0(零)
  • 浮点数 0.0 和 -0.0(零)
  • 空字符串和字符串“0”
  • 具有零个元素的数组
  • 特殊类型 NULL(包括未设置的变量)
  • 从无属性空元素(即既没有子元素也没有属性的元素)创建的 SimpleXML 对象。

所有其他值都被视为 true(包括任何资源和 NAN)。

所以是的,字符串"0"被视为特殊情况。


Perl's 真理与谎言 https://perldoc.perl.org/perldata#Scalar-values行为有点像 PHP。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试“0”、“-0”、“0.0”、“00”时的 PHP 和 Perl 行为 的相关文章

  • cURL 错误 77:设置证书验证位置时出错:CAfile

    我正在使用 Firebase php SDKlink https firebase php readthedocs io en latest index html并在 Windows 10 上的 XAMPP 服务器上使用 laravel 最
  • 如何在 Zend Framework 中存储 cron 作业的脚本?

    因为 ZF 的所有 URL 都依赖于 mod 重写 所以我并不清楚应该在哪里存储用于 cron 作业的本地脚本 有人有什么建议 或者有 正式接受 的方式吗 我用模块化目录结构 http framework zend com manual e
  • 奇怪的跨线程 UI 错误

    我正在编写一个 WinForms 应用程序 它有两种模式 控制台或 GUI 同一解决方案中的三个项目 一个用于控制台应用程序 一个用于 UI 表单 第三个用于保存两个界面也将连接的逻辑 控制台应用程序运行绝对流畅 保存用户选择的模型 它有一
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 使用 PHP 将值插入可编辑 PDF,并保持可编辑状态

    我有一个带有可编辑字段的 PDF 我希望将 HTML 表单中的值传递到此 PDF 中 我尝试过使用 FPDF 并且它有效 但是将值传递到 PDF 后 pdf 中的字段不再可编辑 另一个缺点是 在将值传递到 PDF 时 我们必须为每个字段指定
  • 将 std::string 从 C++ DLL 返回到 c# 程序 -> 指定给 RtlFreeHeap 的地址无效

    在我的 C DLL 中的函数中 我将 std string 返回到我的 C 应用程序 它几乎看起来像这样 std string g DllName MyDLL extern C THUNDER API const char stdcall
  • 如何以编程方式获取 WooCommerce 中的所有产品?

    我想获取 WooCommerce 中的所有产品数据 产品 sku 名称 价格 库存数量 可用性等 我可以使用 wp query 来做到这一点吗 这样你就可以通过 wp query 获取所有产品 global wpdb all product
  • Laravel 按动态 ID 数组对集合进行排序 [重复]

    这个问题在这里已经有答案了 我有以下 people array 5 2 9 6 11 people collection People find people 但当我倾倒并死去时 people collection集合按 ID ASC 排序
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • 在 Woocommerce 购物车中设置最小小计金额

    我正在尝试将最低订单金额设置为 25 美元 到目前为止 我找到了这段代码 如果未达到最低限度 它似乎可以阻止结账 但它使用的小计包含税费 我需要在总计中排除税费 add action woocommerce checkout process
  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • Perl:HTTP::微小删除留下损坏的锚标记

    我编写了一个脚本 该脚本收集从数据库读取的缓冲区内的所有 URL 检查该页面是否仍然存在 并使用 HTTP Tiny 从缓冲区中删除 URL 如果该 URL 无法访问或返回无效 问题是 HTTP Tiny 删除左锚标记 例如此处无效的文本
  • 如何在附加的 sqlite 数据库中创建外键?

    我正在尝试创建一个 sqlite3 数据库作为模拟生产环境的测试环境 由于生产的设置方式 表处于多个模式中 我已经在 DBIx Class 中设置了类 使用 schema gt storage gt dbh do将数据库与架构附加在一起 并
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床

随机推荐

  • Xamarin Shell:将多个参数传递到另一个页面

    我的 Xamarin Forms Shell 应用程序中有两个页面 一个是列表页面 另一个是详细信息页面 当我选择列表页面中的项目时 将显示详细信息页面 我能够将一个参数传递到第二页 我知道如何传递第二个值 但是我应该如何接收第一个属性本身
  • 设置 llvm::ConstantInt 的值

    我正在玩 LLVM 我考虑过改变中间代码中常量的值 然而对于班级llvm 常量Int http llvm org docs doxygen html classllvm 1 1ConstantInt html 我没有看到设置值函数 知道如何
  • f77 未格式化二进制文件的内容

    我有一个 f77 未格式化的二进制文件 我知道该文件包含 2 个浮点数和一个长整数以及数据 文件的大小为 536870940 字节 应包含 512 3 个浮点数据值以及 2 个浮点和长整数 512 3 个浮点数据值组成 536870912
  • 将 HTML 文件导入到另一个 HTML 文件中

    我想知道如何将 HTML 文件导入到其他 HTML 文件中 这两个文件都引用许多不同的文件 因此我更愿意将它们保存在两个不同的文件夹中 而不是将一个文件复制到另一个文件中 目前 我正在使用 Django 进行本地开发 include fil
  • keycloak 上是否有用于更改用户密码的 API 调用?

    我正在尝试实现自己的表单来更改用户的密码 我试图在 Keycloak 中找到用于更改用户密码的 API 但在文档中找不到任何内容 有API可以做到这一点吗 您可以使用PUT auth admin realms realm users id
  • 调用渲染与绘制 DOM?

    我正在学习 React 并试图更好地理解生命周期和不同阶段 我刚刚读到的一件事是 React 首先渲染然后安装元素 在这种情况下渲染意味着调用类的 render 而不是绘制 DOM 我想我只是不太明白这意味着什么 有人可以用简单的方式或举例
  • Ansichar 和 char 有什么区别? [复制]

    这个问题在这里已经有答案了 我最近遇到了这种数据类型不匹配的情况 这是我以前从未见过的 我希望有人能解释它们是什么以及它们有何不同 我得到的错误是 F2063 DCC 错误 E2010 不兼容的类型 AnsiChar 和 Char 历史上在
  • 增加 ulimit Mac OS X 10.8

    I m learning MongoDB and when I start the mongo shell a wild warning message appeared It says 我如何更改 软限制 我使用的是 Mac OSX 10
  • 如何删除 Hudson 的构建工件?

    我们使用 Hudson 作为我们的持续集成服务器 它非常棒 我们有两个问题 它们有轻微的相关性 https hudson dev java net issues show bug cgi id 2736 https hudson dev j
  • 将数据集加载到数据库时,DBUnit 出现 NoPrimaryKeyException

    当我尝试运行使用 DBUnit 的单元测试之一时 我收到 NoPrimaryKeyException 数据表是使用 Hibernate 创建的 是映射多对多关系的两个类之间的连接表 定义关系的注解如下 Override ManyToMany
  • Pagedown markdown 脚本插入图像 url 一次

    我有一个修改后的 pagedown markdown 标记脚本 用于将图像 url 插入编辑器 但它仅在第一次起作用 我已经用注释解释了我的代码
  • 使用 python scapy 发送 DHCP Discover

    我是Python新手 正在学习一些网络编程 我希望通过我的tap接口向我的DHCP服务器发送一个DHCP数据包 并期待它的一些响应 我尝试了几种数据包构建技术 例如 structs 和 ctypes 最终使用 scapy 在这里 我能够发送
  • 附加属性有哪些不同的用途?

    到目前为止 我在 WPF 的冒险经历中已经看到了 AttachedProperties 的一些非常不同的用途 我想知道其中有哪些不同的用途 我见过相当普通的用途 例如 Grid 和 Canvas 中的用途 以及一些非常酷的技巧 允许在没有
  • 在 Jupyter Notebook 中重新加载 Python 模块(不自动重新加载)

    我有以下文件夹结构 project src init py mymodule py mynotebook ipynb within mynotebook我可以导入mymodule使用标准公式from src mymodule import
  • 如何使用空格或缩进注释多行

    在 Visual Studio 2010 中 我有多行文本需要注释 A B C Using CTRL E C to comment out multiple lines I get A B C 我想在之间有一个空格 或缩进 and A he
  • GNUPLOT:点图,数据取决于点大小

    我正在尝试绘制由 3 个坐标组成的数据集 X 坐标 x 坐标和出现次数 例子 1 2 10 3 1 2 3 2 1 我想在 x y 处为每条线画一个点 其直径取决于第三个值 Gnuplot 可以做到这一点吗 创建具有可变点大小的二维图 看t
  • CSS非标准“ZOOM”属性

    我有一个 css 文件 其中包含一个带有 Zoom 1 的类 我在浏览器控制台上收到以下错误 该页面使用非标准的 缩放 属性 相反 您可以使用 calc 或将 transform 与 transform origin 0 0 一起使用 如何
  • $redis 全局变量与 ruby​​ on Rails

    我使用 redis 作为读取缓存 我创建了一个初始化程序 配置 初始化程序 redis rb redis Redis new host gt ENV REDIS HOST port gt ENV REDIS PORT 每当创建新工作人员时
  • 未在命名空间中捕获 PDOException

    我不知道怎样才能抓住PDOException在下面的代码中 请告诉我下面的代码中哪里抛出异常 我有 目录 folder 1 b php 2 c php autoloader in the b php and in c php class c
  • 测试“0”、“-0”、“0.0”、“00”时的 PHP 和 Perl 行为

    当 PHP Perl 测试一个值时 我遇到了这个有趣的行为 print 0 Yes No gt No print 00 Yes No gt Yes print 0 0 Yes No gt Yes print 0 Yes No gt Yes