这是代码:
<?php
$a = "4 fox and 3 cows"; // it is simple string
$b = 22;
echo $ab = $a + $b;
echo "output::".$ab;
?>'
输出: 只读取第一个索引 26 这背后的逻辑是什么? 相反,我应该得到一个错误..
2.另一个例子:
<?php
$a = "four fox and 3 cows"; // it is simple string
$b = 22;
echo $ab = $a + $b;
echo "output::".$ab;
?>'
output:
22
what is the logic behind this..?
答案 0 :(得分:4)
你应该研究Type Juggling,php是否能最好地适应动态转换类型转换的能力,使用php中的+运算符意味着2个数字是否为整数,小数等等。
由于字符串不具有整数值,因此当您使用+运算符时,它将使用可构成有效整数的字符串的第一部分。
由于你的例子以<ul class="nav nav-pills sort-source" data-sort-id="portfolio" data-option-key="filter">
<li data-option-value="*" class="active">
<a href="#" ng-click="getAllRequests(1)">Toon alle</a>
</li>
@foreach ($Categories as $categorie)
<li data-option-value=".{{$categorie->nameN}}" class="">
<a href="#" ng-click="getRequests({{$categorie->id}})"
data-id="{{$categorie->id}}">{{$categorie->nameN}}
</a>
</li>
@endforeach
</ul>
开头,它会截断其他所有内容并将4变成一个整数,使其为4 + 22,即26。
答案 1 :(得分:0)
使用。运算符以连接字符串。
+运算符会将字符串转换为数字并添加它们
答案 2 :(得分:0)
如果你想用字符串连接数字,php中的运算符是.
,而不是+
。
否则,为什么要添加带字符串的数字?你期望得到什么结果?在这些情况下,似乎php将字符串解析为int,忽略了它可以理解的数字之后的所有内容。
答案 3 :(得分:0)
+
只需将您的字符串转换为int,即可删除未知数字的所有内容。
"4 fox and 3 cows"
^^&GT;
一切都被剥夺,因为fox and 3 cows
无法处理数字,php从左到右读取数字,一旦遇到奇怪的东西,它就会停止。