亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

添加和連接時,PHP感到困惑

添加和連接時,PHP感到困惑

PHP
慕少森 2020-01-05 08:00:23
我有以下代碼:<?php    $a = 1;    $b = 2;    echo "sum: " .  $a + $b;    echo "sum: " . ($a + $b);?>當我執行代碼時,我得到:2sum: 3為什么"sum:"在第一個回顯中無法打印字符串?將加法放在括號中似乎很好。是否在任何地方都記錄了這種奇怪的行為?
查看完整描述

3 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

這兩個運算符的加法+運算符和串聯.運算符都具有相同的運算符優先級,但是由于它們保持關聯,因此它們的計算方式如下:


echo (("sum:" . $a) + $b);

echo ("sum:" . ($a + $b));

因此,您的第一行首先進行連接,最后得到:


"sum: 1" + 2

(現在,由于這是一個數字上下文,因此您的字符串將轉換為整數,因此最終得到0 + 2,然后得到結果2。)



查看完整回答
反對 回復 2020-01-06
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

如果查看列出PHP運算符priority的頁面,則會看到串聯運算符.和加法運算符+具有相同的優先級,并且具有左關聯性。這意味著操作完全按照代碼所示從左到右完成。讓我們看一下:


$output = "sum: " . $a;

echo $output, "\n";

$output = $output + $b;

echo $output, "\n";

這給出以下輸出:


sum: 1

2

串聯有效,但是您隨后嘗試將字符串添加sum: 1到number中2。不以數字開頭的字符串的計算結果為0,因此等價于0 + 2,結果為2。


正如您在問題中建議的那樣,解決方案是將加法運算括在方括號中,以便將它們一起執行,然后將這些運算的結果連接在一起。


echo "sum: " . ($a + $b);



查看完整回答
反對 回復 2020-01-06
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

由于您使用語言構造echo,因此可以使用逗號將附加內容與串聯分開:


echo "sum: " , $a + $b;

可以正常工作。


查看完整回答
反對 回復 2020-01-06
  • 3 回答
  • 0 關注
  • 360 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號