请解释echo如何用数学表达式和二进制逗号(,)来理解点(。)。
<?php
echo "The Sum: " . 2+3;
?>
//Output
3
为什么3作为输出?
答案 0 :(得分:7)
// current date
NSDate *now = [NSDate new];
// get last day of the current month
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
[calendar setTimeZone:[NSTimeZone systemTimeZone]];
NSRange dayRange = [ calendar rangeOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitMonth
forDate:now];
NSInteger numberOfDaysInCurrentMonth = dayRange.length;
NSDateComponents *comp = [calendar components:
NSCalendarUnitYear |
NSCalendarUnitMonth |
NSCalendarUnitDay fromDate:now];
comp.day = numberOfDaysInCurrentMonth;
comp.hour = 24;
comp.minute = 0;
comp.second = 0;
NSDate *endOfMonth = [calendar dateFromComponents:comp];
和.
是左关联的,因此您的语句被解释为
+
这相当于
echo ("The Sum: " . 2) + 3;
当您添加字符串和数字时,它会将字符串转换为数字,该数字会尝试在字符串的开头查找数字。由于echo "The Sum: 2" + 3;
不以数字开头,因此会转换为"The Sum: 2"
。这使得语句等同于
0
简化为
echo 0 + 3;
这就是你看到的结果。
答案 1 :(得分:1)
有两个运算符点(。)和加号(+),并且点具有高优先级。试试这个
<?php
echo ("The Sum: " . 2) + 3;
?>