PHP 语法。布尔运算符、三元运算符和 JavaScript

2023-12-09

在 JavaScript 中,我习惯使用以下后备评估

var width = parseInt(e.style.width) || e.offsetWidth() || 480

meaning width将获得最后一个非零(非空...)值 但是,在 php 中我不能写

$a = $_GET['id'] || 1;

我必须这样写

$a = $_GET['id']?$_GET['id']:1;

这很糟糕,因为$_GET['id']被评估两次

有什么建议么?


如果您有 PHP 5.3,您可以简单地执行以下操作:

$a = $_GET['id'] ?: 1;

根据 PHP 手册:

从 PHP 5.3 开始,可以省略三元运算符的中间部分。如果 expr1 计算结果为 TRUE,则表达式 expr1 ?: expr3 返回 expr1,否则返回 expr3。

如果您没有 PHP 5.3 或更高版本,则必须使用 Sarfraz(或更好的是 delphist)的建议。但是,在较大的应用程序中,我倾向于将请求变量包装为可以在检索请求的函数的参数中指定默认值的方式。这样做的优点是它更干净(更容易理解),并且如果 $_GET 变量中不存在索引,它不会生成警告,因为我可以使用类似的东西isset检查数组索引是否存在。我最终得到类似的结果:

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

PHP 语法。布尔运算符、三元运算符和 JavaScript 的相关文章

  • 使用 Ajax 和 PHP 上传图像

    我想将图像上传到我的服务器 并控制 HTML 代码中的 PHP 回显 为此 我想使用 jQuery Ajax 但我不知道如何使用 Ajax 将图像发送到 PHP 这是一个大学项目 所以我不能使用任何类型的插件 我的实际代码 HTML
  • mysqli_real_escape_string 无法正常工作

    我已经搜索过 但我发现似乎没有任何效果 我的问题是 当使用特殊字符作为 输入查询会中断 现在 我尝试在字符串上使用 mysqli real escape string 但这会返回一个空白值 我读到 mysqli real escape st
  • 快速向量初始化 C++ [重复]

    这个问题在这里已经有答案了 可能的重复 C 使用硬编码元素初始化 STL 向量的最简单方法 https stackoverflow com questions 2236197 c easiest way to initialize an s
  • PHP 查找最接近时间线期间的日期

    所以 呃 好吧 这可能会涉及到数学问题 所以希望你带上科学计算器 这是我的问题 给定初始日期 时间戳 时间段 秒 和今天的日期 时间戳 我需要找到与 period n 加上原始 初始日期一致的最近日期 到目前为止 我得到了一些运行良好的东西
  • PHP 数组的最大键大小是多少?

    我正在生成关联数组 键值是 1 n 列的字符串连接 会回来咬我的钥匙有最大长度吗 如果是这样 我可能会停下来并采取不同的做法 它似乎仅受脚本内存限制的限制 快速测试后我得到了 128mb 的密钥 没问题 ini set memory lim
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • $_GET 作为 PHP 函数中的参数

    我有同样的问题 但是 我根据使用标头的 if 语句将用户重定向到通过函数构造的动态页面 为了使该函数正常工作 需要在标头的 GET 部分中传递参数 根据提供的答案 这是一种不好的做法 我应该用什么方式来做呢 function page ti
  • PHP,检查 URL 和文件是否存在?

    我为 WordPress 创建了一个插件 需要存在两个文件才能正常运行 第一个文件定义为文件系统路径 第二个文件定义为 URL 假设第一个文件是 home my site public html some folder required f
  • 字符编码失败,为什么\xBD在PHP + HTML中显示不正确

    我只是想更好地理解字符编码 所以我做了一些测试 我有一个保存为 UTF 8 的 PHP 文件 如下所示 页面本身
  • orm和pdo的区别

    我对 ORM 和 PDO 之间的区别有点困惑 PDO是一种ORM吗 根据我的理解 ORM 基本上是一种数据映射 PDO 还提供了数据库数据的抽象 PDO 和 ORM 是两个完全不同的东西 PDO 是数据库访问抽象层的具体实现 它使您能够使用
  • 数据库字段中的空白不会被trim()删除

    我在 MySQL 的文本字段的段落开头有一些空格 Using trim var text field 在 PHP 中或TRIM text field MySQL 中的语句绝对不执行任何操作 这个空白可能是什么以及如何通过代码删除它 如果我进
  • 如何使用 php 命令使注册表单高度安全?

    我想让代码对用户来说真正安全 下面的代码显示了 php 代码 我已将其用于我的网站 现在我已经使用了一些验证 例如密码和重复密码必须匹配 并且用户必须输入所有字段 为了使其更安全 我想插入安全命令 例如 PDO mysqli crypto
  • PHP:数据库连接类构造方法

    我是面向对象编程的新手 最初 我是在类内部和构造函数外部定义变量并为其赋值 但是在今天的 Java OOP 课程之后 我被告知这是不好的风格 应该避免 这是我模拟的原始 PHP 数据库连接类 class DatabaseConnection
  • 关联数组与 SplObjectStorage

    我正在编写代码来管理一组独特的对象 该代码的第一个原型使用关联数组 基本上就像我一直这样做的方式一样 然而 我也热衷于利用 PHP 的更现代版本中添加的功能 例如 SplObjectStorage 1 这样做 部分是作为一种学习经验 部分是
  • 在 PHP 页面中嵌入 svn 修订号的简单方法?

    注意到这个页面的右下角有 SVN 修订 ID 了吗 我假设这是动态的 我很乐意将其添加到我的一些网站中 就像源代码中的注释一样 以确保代码推送顺利进行 注意 您还可以假设相关站点的工作目录是相关存储库的 svn checkout Edit
  • Drupal:*.api.php 中的 hook_ 函数是否被调用过?

    在 Drupal 7 中 每个核心模块都有一个 api php文件 其中 是模块的名称 例如 modules node node api php modules path path api php 这些文件有什么用 它们包含以以下开头的函数
  • PHP 性能有多好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这是我最近看到的一篇文章的后续内容 该文章表明 PHP 性能很差 PHP 始终是瓶颈 我的服务器群 让我向您展示 PHP 整体性能 http t
  • Codeigniter:用户会话不断过期

    我正在使用 CodeIgniter 但在会话方面遇到了一个小问题 我已将 config php 中的 sess expiration 设置为 0 以便用户会话永远不会过期 但用户 甚至我自己 仍然偶尔会被踢出并要求再次登录 顺便说一句 我将
  • WooCommerce 添加到购物车后停止重定向

    我希望在用户单击 添加到购物车 按钮后完全删除任何重定向 实际上我没有使用产品页面 我使用一个带有产品链接的简单按钮 如下所示 add to cart 492 我的用户将单击我页面上的多个 添加到购物车 按钮 因此在单击第一个按钮后他无法重
  • (mysql, php) 如何在插入数据之前获取auto_increment字段值?

    我正在将图像文件上传到存储服务器 在上传之前 我应该编写文件名 其中包含自动增量值 例如 12345 filename jpg 在插入数据库之前如何获取自动增量值 我只看到一种解决方案 插入空行 获取其自增值 删除这一行 使用 p 1 中的

随机推荐

  • Python Google Cloud 函数缺少日志条目

    我正在第一次尝试 GCP 的云函数和 python 并希望将 python 的日志记录充分集成 以便它们能够很好地适应 GCP 的日志记录基础设施 特别是为了识别严重性级别 并且最好还包括execution ids 和跟踪 id 我一直在关
  • 切换隐藏/显示 Google 地图标记

    我有一个自定义的谷歌地图 上面有艺术家位置的标记 我想做 8 种不同类别的标记 我读到必须制作标记数组并分配类别 但老实说我不知道 从哪里开始 我认为这个问题很接近我想要的 按类别打开 关闭 Google 地图标记 试图让它发挥作用 但无济
  • 列出每个存储桶的缩略图

    我有2节课 首先是用于搜索所有文件夹 我的意思是桶列表名称 秒级制作缩略图 但我需要每个桶都有缩略图 因此 当我按下文件夹时 它应该显示其中的所有照片 缩略图 有人可以帮我吗 第一类 public class ThumbnailAdapte
  • 可变边的三栏网页设计

    我一直在尝试想出一种方法来创建 3 列网页设计 其中中心列具有恒定的宽度并且始终居中 左侧和右侧的列是可变的 这在表中是微不足道的 但在语义上并不正确 我无法在所有当前浏览器中使其正常工作 这方面有什么建议吗 Use 这项技术 只需为中心列
  • ASP.NET 中的 OpenStreetMap

    我有兴趣在使用 ASP NET 开发的 Web 应用程序中使用 OpenStreetMap 有人知道在 ASP NET 中是否有使用 OpenStreetMap 的控件 库或包装器 C 不使用 JavaScript 我不确定他们是否有任何
  • 避免从不同位置多次登录帐户

    我想限制同一用户从不同位置多次登录 如何识别用户在同一时间 最近时间从不同位置多次登录 我认为表中的一些标志和 IP 检查可能是一个可能的解决方案 但是有更好的解决方案吗 更新 我认为会话或 cookie 如果适用于单台机器可能会有所帮助
  • 使用 bigquery 根据日期将表拆分为多个表,并使用单个查询进行分区

    我想做的最初的 原因 是 恢复表时保持其原始分区 而不是将其全部放入今天的分区中 我以为我能做的是bq load到临时表 然后运行一个查询 按照所需的命名约定将该表拆分为每天一张表 YYYYMMDDbq partition i e shar
  • 在 R 数据表中添加单元格边框

    对 R 相当陌生 在大局方面做得还不错 但当我想向其他人展示一些东西时 却很难清理边缘 用可能非常简单的东西把我的头撞在墙上 我只是想在一个闪亮的应用程序的数据表中添加单元格边框 到所有单元格 这是相关的代码块 library ggplot
  • PostgreSQL和nodejs/pg,返回嵌套的JSON

    我将 PostgreSQL 与 nodejs 和 pg 一起使用 一切工作正常 但我想将 PostgreSQL 的结果作为嵌套 json 输出 就好像我正在使用 MongoDB 或类似的东西一样 我来自 PostgreSQL 的 2 个表是
  • 将文本拆分为最小长度的较小段落,而不破坏给定阈值的句子

    有更好的方法来完成这项任务吗 对于 NLP 任务的预处理 我试图将大块文本分割成偶数长度的字符串列表 通过在每个 处分割文本 我的句子长度会很不均匀 通过使用索引 数字 我会在中间切断句子 目标是将句子放在长度均匀的列表中 而不会在句子结束
  • 如何使 iframe 水平居中?

    考虑以下示例 现场演示 HTML div div div CSS div iframe width 100px height 50px margin 0 auto background color 777 Result Why the if
  • GC是否将内存释放回操作系统?

    当垃圾收集器运行并释放内存时 这些内存会返回操作系统还是被保留为进程的一部分 我的强烈印象是 内存实际上从未被释放回操作系统 而是作为内存区域 池的一部分保留 以供同一进程重用 因此 进程的实际内存永远不会减少 一篇文章这让我想起了这一点
  • 检查帐户是否是本地组的成员并在 powershell 2.0 中执行 IF/ELSE

    我想知道如何最好地解决这个问题 基本上我有一个脚本需要检查 USER1 是否是本地管理员的成员 如果是 请将其删除 这些组都是本地的 脚本将在我需要检查的系统上运行 不需要远程处理 我正在考虑捕获和评估输出的一些事情 net localgr
  • 如何根据提交消息触发azure devops构建管道?

    如何从特定提交触发构建 我正在构建一个 Azure DevOps 项目 该项目有 UI 和后端应用程序代码 这两个代码都作为单个项目放置在 GitLab 中 但不同的团队正在为 UI 和后端工作 我需要配置两个构建管道 一个用于 UI 更改
  • 在 Django 中根据 IP 地址(国家/地区)重定向域的最佳方法

    我们有 2 个商店 分别是 XXXXXX com 和 XXXXXX com mx 我想只允许美国 IP 访问 XXXXXX com 任何其他 IP 都需要路由到 XXXXXX com mx 我们曾经使用 Limelight 进行路由 但我们
  • Android:如何以编程方式创建 EAP wifi 配置?

    我知道如何以编程方式创建 Open WEP PSK PSK2 配置 ex WifiConfiguration conf new WifiConfiguration conf SSID ssid conf preSharedKey passw
  • 过滤器[struts2]:找不到所需的过滤器类 - org.apache.struts2.dispatcher.FilterDispatcher.class

    我们正在将 Web 应用程序从 struts 2 3 16 升级到 2 5 13 我们使用Web sphere应用程序服务器 WAS 8 5 来运行 IDE是RAD 我已添加所有必需的 JAR 文件 但收到此错误 Error 500 jav
  • 标准表达式中的数据类型不匹配

    myConnection Open rtb Address Clear txt Name Clear Dim str As String str SELECT FROM table1 WHERE cus ID txt ID Text Dim
  • 如何将 Visual Studio 2010 上构建的项目从动态切换为静态?

    我最近开始使用 Visual studio 2010 所以我不知道它的各种选项 我创建了一个项目 并在一开始的应用程序向导中 我选中了 动态库 框 现在我需要静态链接同一个项目以使其可移植 请帮助我 谢谢 在解决方案资源管理器中 找到有问题
  • PHP 语法。布尔运算符、三元运算符和 JavaScript

    在 JavaScript 中 我习惯使用以下后备评估 var width parseInt e style width e offsetWidth 480 meaning width将获得最后一个非零 非空 值 但是 在 php 中我不能写