php 点 连接符,新手易犯错点

很多时候我们需要将几个字符串连接起来显示,在PHP中,字符串之间使用 “点” 来连接,也就是英文中的半角句号 " . " 。" . " 是字符串连接符,可以把两个或两个以上的字符串链接成一个字符串。例如:

echo 'A' . 'B' . 'C'; // 输出ABC
echo 'A' . $str1 . $str2; //Aabc123

点连接符使用起来很简单,但实际项目中,经常还是看到有些同事犯错,看一个例子:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

class Student
{
    public $name = '';

    public $age = 0;
}

$class = new Student;
$class->name = 'zeng';

// 示例一
echo 'sex=' . isset($class->sex) ? $class->sex : 'A' . "  B"; // Notice: Undefined property: Student::$sex in /demo/index.php on line 16

// 示例二
echo 'sex=' . (isset($class->sex) ? $class->sex : 'A') . " B"; // sex=A B

示例一 提示notice错误,示例二能正常输出。
示例一的执行可以解释为,表达式不为空,执行 $class->sex ,sex不是Student类属性

(  'sex=' . isset($class->sex) )?  $class->sex : ('A' . "  B")

示例二中因为三元运算符 加了括号,能得到想要的结果

(isset($class->sex) ? $class->sex : 'A')

举个简单的例子:

// 理解为:( 'RESULT: ' . 1 )  ? 'A' : ('B' . 'C')
echo 'RESULT: ' . 1 ? 'A' : 'B' . 'C'; // 输出 A

echo 'RESULT: ' . (1 ? 'A' : 'B') . 'C'; // 输出 RESULT: AC

注意:【字符串运算符】的优先级别 大于 【三元运算符】,实际操作中,如果记不住优先级顺序,建议习惯性给对应的表达式加括号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值