三元运算符根据条件返回两个值之一,类型由所选操作数决定,不进行强制转换;例如 $age >= 18 ? "成年人" : 0 返回字符串或整数;条件判断时会发生隐式布尔转换,但返回值保持原始类型;简写形式 ?: 基于真假值选择,默认返回右侧当左侧为假,而 ?? 运算符仅在左侧为 null 时返回右侧,适用于存在性判断。
PHP三元运算符根据条件判断返回两个值中的一个,其返回值的类型取决于参与表达式的操作数类型。三元运算符的基本语法是:
$result = condition ? value_if_true : value_if_false;登录后复制
当 condition 为真时,返回 value_if_true;否则返回 value_if_false。返回值的类型不会强制统一,而是保留各自原始类型。
返回值类型由操作数决定
三元运算符不改变操作数的类型,返回值类型与所选分支的值类型一致。例如:
如果选择的是字符串,返回类型就是字符串 如果选择的是整数,返回类型就是整数 如果是数组或对象,也会原样返回$age = 20;$result = $age >= 18 ? "成年人" : 0;// 结果是字符串 "成年人"var_dump($result); // string(9) "成年人"$valid = false;$output = $valid ? 100 : null;// 结果是 nullvar_dump($output); // NULL登录后复制
类型隐式转换可能影响判断
虽然返回值保持原有类型,但条件部分会进行布尔转换。以下值会被视为 false:
立即学习“PHP免费学习笔记(深入)”;
boolean false integer 0 空字符串 "" null 空数组 []其余大多数值会被当作 true 处理。注意这仅影响条件判断,不影响返回值本身类型。

高效、便捷的人工智能算力服务平台


短语法(?:)与 ?? 的区别
PHP 还支持简写形式 ?:,称为“elvis 运算符”:
$name = $input ?: "默认用户";登录后复制
这等价于:
$name = $input ? $input : "默认用户";登录后复制
但要注意:它依据真假值判断,不是存在性判断。若需判断变量是否存在且非 null,应使用 null 合并运算符 ??:
$name = $input ?? "默认用户";登录后复制
基本上就这些。三元运算符返回值的类型完全由实际返回的那个表达式决定,PHP 不做额外类型转换。使用时注意条件的布尔上下文转换,避免因 0 或 "" 被判为 false 导致意外结果。
以上就是PHP三元运算符返回值_PHP三元运算符结果类型的详细内容,更多请关注php中文网其它相关文章!