PHP 类型转换混乱

2024-03-19

我有以下代码:

<?php
    $val = 0;
    $res = $val == 'true';

    var_dump($res);
?>

我一直认为 $res 应该是“false”,就像上面的表达式一样,PHP 会尝试将 $val 类型转换为布尔类型(其中零将被转换为 false)和字符串(非空字符串为 true)。但是如果我执行上面的代码输出将是:

boolean true

我错过了什么吗?谢谢。


在 PHP 中,所有非空、非数字字符串的计算结果为零,因此0 == 'true'是真的,但是0 === 'true'是假的。字符串true尚未转换为布尔值,但正在比较a string到零。零保留为 int 值,而不是转换为布尔值。所以最终你得到:

// string 'true' casts to int 0
0 == 0 // true

尝试这个:

echo intval('true');
// 0
echo intval('some arbitrary non-numeric string');
// 0

Review PHP 类型比较表 http://php.net/manual/en/types.comparisons.php。一般来说,当在 PHP 中进行布尔比较并且类型不相同时(在本例中是 int 到 string),使用严格比较是有价值的。

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

PHP 类型转换混乱 的相关文章

  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • 如何在PHP中获取div中的所有链接

    我想从另一个网站打开一个页面 并提取一个中的所有链接 href div of class layout 2 2 在此页面中 我如何使用 PHP 来做到这一点 我想复制layout 2 2中的每个链接this https url 网页 这是我
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • CakePHP - 选择性 SSL

    如何对网站的某些部分强制使用 HTTPS 例如登录页面或注册页面 并使用 HTTP 来完成网站的其余部分 我最喜欢的强制转换为 https 的方法是将其作为 php 脚本中的第一件事 它可以在 Joomla 中运行 也可以在 CakePHP
  • 使用控制器通过 codeigniter 处理返回的自定义 css 和 javascript 文件

    我正在开发一个 php codeigniter 项目 我正在考虑创建一个专门用于处理返回自定义 css 和 javascript 文件的控制器 在之前的项目中 我在视图文件的标头中包含了外部 CSS 和 JS 文件 但它们本质上必须是静态的
  • 在 laravel 中禁用特定路由的 csrf

    我有一个支付系统 数据被提交到第三方网站然后被拉回 当数据返回时 它会到达特定的 url 比如 ok 路由 REQUEST transaction 但由于 Laravel 中间件 我遇到了令牌不匹配的情况 第三方支付API无法生成token
  • php 邮件特殊字符 utf8

    我有以下脚本 在电子邮件中 主题 Testmail Special Characters Body Hi there this isn t somet
  • 通过 PHP 连接到 socket.io(nodejs)

    我需要通过 php 连接到 websocket 发送数据并立即断开连接 无需等待套接字的响应 我用了大象io http elephant io 但更新库后不起作用 请告诉我如何通过 PHP 连接到 websocket 我也遇到了这个问题 学
  • 使用 Mock 对 Laravel 5 Mail 进行单元测试

    有没有办法在 Laravel 5 中测试 Mail 尝试了我在互联网上看到的唯一合法的模拟示例 但它似乎只适用于 Laravel 4 下面的当前代码 mock Mockery mock Swift Mailer this gt app ma
  • 将 PayPal 返回 URL 设置为 localhost

    我正在尝试集成 Paypal 并且在此过程中使用沙箱 我按照以下问题中接受的答案的步骤进行操作 设置 PayPal 返回 URL 并使其自动返回 https stackoverflow com questions 7642895 setti
  • Apache 虚拟主机始终重定向到 /dashboard

    我遇到的问题似乎是一个常见问题 但我找到的任何解决方案似乎都不适合我的情况 我正在尝试设置一个虚拟主机 以便我可以通过 mytestdomain local 访问我的 Laravel 安装的公共文件 但是当我在 google chrome
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 从关系中合并 Laravel 中的集合

    假设我有 3 张桌子 Images Subject Style 关系是多对多 图像 主题 和多对多 图像 样式 现在我想做一些类似的事情 result subjectResult gt images gt merge styleResult
  • 通过php将mp3转换为ogg

    我有一个网站 用户可以上传音乐并将其转换为 mp3 但我需要 mp3 和 ogg 文件支持才能以 html5 播放音乐 那么 有没有可以将mp3转换为ogg的php脚本呢 使用 ffmpeg 您可以直接从 php 脚本执行命令
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • 二维数组的 MPI 数据类型

    我需要将一个整数数组的数组 基本上是一个二维数组 从根传递给所有处理器 我在 C 程序中使用 MPI 如何声明二维数组的 MPI 数据类型以及如何发送消息 我应该使用广播还是分散 你需要使用播送 http www netlib org ut
  • 一些基本的 PHP 问题 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是有一些基本的 php 问题来加深我对学习的理解 但我找不到简单的答案 我有一个 php ajax 应用程序 它生成 mysql

随机推荐

  • Python 相当于 PHP 的内爆?

    Python 中是否有与 PHP 内爆相当的东西 我已经读入并分割了一组分隔单词 现在我想按随机顺序对它们进行排序 并打印出单词之间有空格 implode 将数组元素与字符串连接起来 http php net manual en funct
  • 在 Windows XP、SP3 上使用 RawCap 嗅探本地主机

    我正在尝试使用 RawCap 来嗅探 Windows 本地主机 然而 与它所宣称的能力相反 它并没有发挥作用 我按如下方式启动它 rawcap 127 0 0 1 回声 pcap 然后我运行我编写的一个 echo TCP 客户端 服务器测试
  • 如何以不同的配置启动 emacs

    我经常遇到以下流行的 emacs 版本 graphene https github com rdallasgray graphene prelude https github com bbatsov prelude emacs live h
  • 返回模拟方法的参数作为结果

    最简单的例子 我有以下方法 public String testMethod String arg 我想模拟这个方法以返回传递的参数作为结果 例如 testMethod aString returns aString testMethod
  • cURL 错误:SSL 对等证书或 SSH 远程密钥不正常 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Using
  • 将 php 变量从一个文件传递到另一个文件?

    我在主文件 main php 中设置了一个变量 并且需要第二个文件 uploads php 来引用第一个文件中设置的变量 它现在返回未定义 第二个文件使用 load 加载到第一个文件中 下面的代码示例 Main php 内容 div div
  • 用于检查 MySQL TABLE LOCK 状态的 Php 脚本

    我使用 mysqldump 进行 MySQL 备份 mysqldump lock tables DB大约2GB 因此mysqldump需要很长时间 如果有人在备份期间尝试访问数据库 我会显示一条消息 数据库正在备份 请在10分钟后返回 我的
  • Android中View和ViewGroup的区别

    和有什么区别View and a ViewGroup在Android编程中 View View对象是 Android 中用户界面 UI 元素的基本构建块 View是一个简单的矩形框 它响应用户的操作 例子是EditText Button C
  • 关于 [base + index*scale + disp] 和 AT&T disp(base,index,scale) 的几个问题

    Intel 和 AT T 语法中内存寻址的一般形式如下 base index scale disp Intel including GAS intel syntax noprefix disp base index scale AT T 我
  • AngularJS 的面向对象方法

    Angular 似乎没有提供内置的解决方案来定义具有属性和方法的类实例 并且需要开发人员来构建它 您认为这样做的最佳做法是什么 如何将其与后端链接 我收集的一些技巧使用工厂服务和命名函数 资料来源 Tuto 1 https medium c
  • 使用 Spring boot 和 JWT 保护 REST Api

    我正在尝试使用以下方法来保护我的 REST 服务器JWT我已经实现了自己的 这意味着 JWT 中没有 spring 的东西可以自行处理 其他一切都是Spring当然 我有这门课 JWTToken implements Authenticat
  • Windows 应用程序认证工具包验证期间出现“检测到高操作系统版本验证”错误

    运行时出现以下测试失败Windows App Certification Kit 10 0 Platform version launch Error Found The high OS version validation detecte
  • 尝试使用空的捕获[重复]

    这个问题在这里已经有答案了 假设我有一个 try 语句和空 catch 是不好的做法吗 例如 假设我有两次单独的尝试 其中一次可能失败 但另一次成功 或者两者都成功 或者任何可能的组合 处理这样的代码是不好的做法吗 Example if m
  • 定义全局 android.widget var/val 时的“lateinit”或“by懒惰”

    定义全局时android widget变量 例如TextView 是否最好使用lateinit or by lazy 我最初想使用by lazy会被首选 因为它是不可变的 但我不完全确定 by lazy例子 class MainActivi
  • React-router - 如何在 React 中的页面之间传递数据?

    我正在开发一个项目 必须将数据从一个页面传递到另一个页面 例如 我有data在第一页上 let data id 1 name Ford color Red id 2 name Hyundai color Blue 这是第一个组件页面 我在其
  • javascript:如何调试键盘事件

    想象一个使用自定义键盘事件处理程序的 Web 应用程序 该处理程序可能会执行事件冒泡或事件捕获 有没有办法 例如 Firefox Firebug 插件 调试每个击键 键盘事件 就像是 显示事件类型和所有属性 跟踪哪个 javascript
  • 在三个js中使用鼠标悬停更改网格的颜色

    我已经编写了一个 WebGL 脚本 该脚本使用 jsonloader 和 Three js 显示多个网格 现在我想添加 MouseOver 和 onClick 事件 第一个是当鼠标悬停在网格上时简单地更改网格的颜色 function ren
  • PHP/Smarty 来自数据库的嵌套数组

    好的 我正在尝试通过嵌套查询访问 php mysql 数据库 例如 我有 2 张桌子 1 人和 2 登记 我在注册中有一个推荐 ID 选项卡 因此 当用户登录时 他应该能够看到在其 ID 下完成的 4 级注册 表结构 登记 编号 注册ID
  • Seaborn FacetGrid 包括用于删除级别的空列/行[重复]

    这个问题在这里已经有答案了 我正在使用内置的 Seaborn 数据集钻石建立一个基于 切割 和 颜色 的 FacetGrid 然而 我首先删除颜色 D 和 E 以及剪切 Fair 希望得到 5x5 网格 我的代码是 diamonds sns
  • PHP 类型转换混乱

    我有以下代码 我一直认为 res 应该是 false 就像上面的表达式一样 PHP 会尝试将 val 类型转换为布尔类型 其中零将被转换为 false 和字符串 非空字符串为 true 但是如果我执行上面的代码输出将是 boolean tr