搜尋
首頁後端開發php教程Java運算符 php中的運算子、控制結構

 php中的運算子

1. 賦值運算子
2. 算術運算子
3. 比較運算子
4.字串運算子
5. 遞增運算子運算子
6. 邏輯運算子(異或運算xor )
7. 三元運算子
8. 位元運算子(移位運算)
10 . echo中','和' .' 的差異
9. 型別轉換
1). 布林值  -字串
2). 字串- 數字的轉換
3). 字串- 布林值的轉換
4). 數字- - 布林值的轉換
5). 數字-字串的轉換

控制結構

1. if 單路分支

2. if /else 雙路分支,雙路分支中if/else 中的2 個代碼段,必有且只有一段被執行
if/else if/else if…/else 多路分支

3. switch case ,用來比較判斷的變數的多種可能值時便於用。

4. while (表達式){
程式碼段}

5. do{
程式碼段;}while(表達式);

6 . for(語句1;語句2;語句3){
代碼段;}

語句1,先執行且只執行1次
然後語句2判斷,如為真,則執行程式碼段; ,然後執行  語句3;
再語句2判斷…循環
直到語句2為假,for結束
程式碼顯示

 php中的运算符、控制结构

<span>  1</span><span>//</span><span>==========================================
</span><span>  2</span><span>  3</span><span>//2. 算术运算                                    </span>返回原处
<span>  4</span><span>//
</span><span>  5</span><span>//php程序如何进行加减乘除
</span><span>  6</span><span>//依次是+ - </span><span>  7</span><span>  8</span><span>  9</span><span>$a</span> = 3<span>;
</span><span> 10</span><span>$b</span> =5<span>;
</span><span> 11</span><span>$c</span> = <span>$a</span> + <span>$b</span>;<span>//</span><span>这语句话的含义是$a+$b计算结果赋给$c</span><span> 12</span><span>echo</span><span>$c</span>,'<br>'<span>;
</span><span> 13</span><span>echo</span><span>$b</span>-<span>$a</span>,'<br>'<span>;
</span><span> 14</span><span> 15</span><span>echo</span><span>$a</span> * <span>$b</span>,'<br>';<span>//</span><span>计算$a * $b的结果 赋给$c </span><span> 16</span><span>echo</span><span>$b</span>/<span>$a</span>,'<br>';<span>//</span><span>计算$b/$a的结果,赋给$c 
</span><span> 17</span><span> 18</span><span>//如果是在C语言中,$b,$a,都是整型,因此计算出来的$c也是整型
</span><span> 19</span><span>//在php中,变量的值可以随意改变,而且变量的类型也可以改变。
</span><span> 20</span><span>//
</span><span> 21</span><span>//比如:变量$c是整型,可以突然为之赋一个浮点型值。
</span><span> 22</span><span>//因此php称为动态语言。
</span><span> 23</span><span> 24</span><span> 25</span><span> 26</span><span> 27</span><span>//-----------------------------------------------------</span><span> 28</span><span>求余就是 取模  运算                        返回原处
</span><span> 29</span><span>在计算机里计算除法的时候,算出来2个结果
</span><span> 30</span><span> 31</span><span>商和余数
</span><span> 32</span><span> 33</span> */
<span> 34</span><span>$a</span> = 3<span>;
</span><span> 35</span><span>$b</span> = 5<span>;
</span><span> 36</span><span>$c</span> = <span>$b</span>%<span>$a</span>;   <span>//</span><span> 得1 余2</span><span> 37</span><span>echo</span><span>$c</span>,'<br>'<span>;
</span><span> 38</span><span> 39</span><span> 40</span><span>//</span><span>小测试,判断一个数是偶数,还是奇数?
</span><span> 41</span><span>//可以对2 取模,余数是1,则为奇数,如果余数为0,则为奇数</span><span> 42</span><span> 43</span><span>$d</span> = 3<span>;
</span><span> 44</span><span>$res</span> = <span>$d</span> % 2<span>;
</span><span> 45</span><span>if</span>(<span>$res</span> == 1<span>){
</span><span> 46</span><span>echo</span><span>$d</span>,'是奇数'<span>;
</span><span> 47</span><span>}
</span><span> 48</span><span>if</span>(<span>$res</span> == 0<span>){
</span><span> 49</span><span>echo</span><span>$d</span>,'是偶数'<span>;
</span><span> 50</span><span>}
</span><span> 51</span><span> 52</span><span>//</span><span>上初中了,有了负数的概念</span><span> 53</span><span> 54</span><span>$b</span> = -5<span>;
</span><span> 55</span><span>$a</span> = 3<span>;
</span><span> 56</span><span>echo</span><span>$b</span>%<span>$a</span><span>;
</span><span> 57</span><span>$b</span> = -5<span>;
</span><span> 58</span><span>$a</span> = -3<span>;
</span><span> 59</span><span>echo</span><span>$b</span>%<span>$a</span><span>;
</span><span> 60</span><span> 61</span><span>//</span><span>注意:在取模运算的时,
</span><span> 62</span><span>//运算的正负结果,取决于被除数的符号
</span><span> 63</span><span>//结果的符号,和被除数的符号一致
</span><span> 64</span><span>//================================================ 
</span><span> 65</span><span> 66</span><span> // 比较运算符                                    返回原处
</span><span> 67</span><span>// > ,= ==,!= ,===(不仅值相等,而且类型也相等),!==</span><span> 68</span><span>$a</span> = 3<span>;
</span><span> 69</span><span>$b</span> = 2<span>; 
</span><span> 70</span><span>if</span>(3 > 2<span>){
</span><span> 71</span><span>echo</span> '3大于2','<br>'<span>;
</span><span> 72</span> }<span>else</span><span>{
</span><span> 73</span><span>echo</span> '3不大于2','<br>'<span>;
</span><span> 74</span><span>}
</span><span> 75</span><span> 76</span><span>if</span>(<span>$a</span> >= <span>$b</span>){    <span>//</span><span>  >=  意味着,$a比$b大,或者  $a 等于$b 有一个为真都行,即条件满足 </span><span> 77</span><span>echo</span> '3大于等于2','<br>'<span>;
</span><span> 78</span> }<span>else</span><span>{
</span><span> 79</span><span>echo</span> '3并不大于等于2','<br>'<span>;
</span><span> 80</span><span>}
</span><span> 81</span><span>//</span><span>-----------------------------------------------</span><span> 82</span><span> 83</span><span>$a</span> = 3<span>;
</span><span> 84</span><span>$b</span> = '3'<span>; 
</span><span> 85</span><span>if</span>(<span>$a</span> === <span>$b</span><span>){   
</span><span> 86</span><span>echo</span><span>$a</span>,'全等于',<span>$b</span>,'<br>'<span>;
</span><span> 87</span> }<span>else</span><span>{
</span><span> 88</span><span>echo</span><span>$a</span>,'不全等于',<span>$b</span>,'<br>'<span>;
</span><span> 89</span><span>}
</span><span> 90</span><span> 91</span><span>//</span><span>==========================================</span><span> 92</span><span> 93</span><span>$a</span> = 3<span>;
</span><span> 94</span><span>$b</span> = <span>true</span><span>; 
</span><span> 95</span><span>if</span>(<span>$a</span> == <span>$b</span><span>){    
</span><span> 96</span><span>echo</span><span>$a</span>,'等于',<span>$b</span>,'<br>'<span>;
</span><span> 97</span> }<span>else</span><span>{
</span><span> 98</span><span>echo</span><span>$a</span>,'不等于',<span>$b</span>,'<br>'<span>;
</span><span> 99</span><span>}
</span><span>100</span><span>//</span><span>在不同的类型比较时
</span><span>101</span><span>//php程序本身
</span><span>102</span><span>//
</span><span>103</span><span>//会把变量 转换成一致的类型,然后再去比较
</span><span>104</span><span>//
</span><span>105</span><span>//着重记以下转换                 返回原处
</span><span>106</span><span>//1. 布尔值  --字符串
</span><span>107</span><span>//2. 字符串 -- 数字的转换
</span><span>108</span><span>//3. 字符串-- 布尔值的转换
</span><span>109</span><span>//4. 数字 - - 布尔值的转换
</span><span>110</span><span>//5. 数字 --字符串的转换
</span><span>111</span><span>//
</span><span>112</span><span>//以5 ==true 比较为例
</span><span>113</span><span>//的把 整型 ,转成布尔型
</span><span>114</span><span>//
</span><span>115</span><span>//其实有的语言中,根本就没有布尔型,都是拿1,0充当true / false 
</span><span>116</span><span>//0   /   0.0    这两个转换为布尔类型为false 
</span><span>117</span><span>//其他都是true ,负数也是true 
</span><span>118</span><span>119</span><span>120</span><span>121</span><span>122</span><span>//-------------------------------------------
</span><span>123</span><span>//1. 布尔值  --字符串</span><span>124</span><span>true</span> ---'1'
<span>125</span><span>false</span>--- ''
<span>126</span><span>127</span><span>//</span><span>-------------------------------------------
</span><span>128</span><span>//1. 字符串 --数字的转换
</span><span>129</span><span>//从字符串左端开始找数字,直到第一个非数字结束,取出来的这一部分,即是转换后的值
</span><span>130</span><span>//'3q'----3</span><span>131</span> '123asdf'---123
<span>132</span> 'sdfds789'----0
<span>133</span><span>134</span><span>$num</span> = 'sdfds789'<span>;
</span><span>135</span><span>echo</span><span>$num</span> + 0; <span>//</span><span>运算结果是0 
</span><span>136</span><span>137</span><span>//-------------------------------------------
</span><span>138</span><span>//3. 字符串 --布尔的转换
</span><span>139</span><span>//''字符串,'0',这种转换成 false
</span><span>140</span><span>//其他的一概是true</span><span>141</span><span>142</span><span>143</span><span>144</span><span>if</span>(''==<span>false</span><span>){
</span><span>145</span><span>echo</span> '空字符串等于false'<span>;
</span><span>146</span> }<span>else</span><span>{
</span><span>147</span><span>echo</span> '空字符串不等于false'<span>;
</span><span>148</span><span>}
</span><span>149</span><span>150</span><span>echo</span> '<br>'<span>;
</span><span>151</span><span>if</span>('0'==<span>false</span><span>){
</span><span>152</span><span>echo</span> '字符串0等于false'<span>;
</span><span>153</span> }<span>else</span><span>{
</span><span>154</span><span>echo</span> '字符串0不等于false'<span>;
</span><span>155</span><span>}
</span><span>156</span><span>157</span><span>158</span><span>//</span><span>-------------------------------------------
</span><span>159</span><span>//4. 字符串 --布尔的转换
</span><span>160</span><span>// 只有整型的0 ,和浮点的0.0 ,转换false
</span><span>161</span><span>//其他 ,甚至负数  ,也转换成true 
</span><span>162</span><span>163</span><span>164</span><span>165</span><span>//-------------------------------------------
</span><span>166</span><span>//5. 数字 --字符串的转换
</span><span>167</span><span>//直接是字面本身    </span><span>168</span><span>echo</span> '<br>'<span>;
</span><span>169</span><span>echo</span>  'aaa'. 2323<span>;
</span><span>170</span><span>171</span><span>172</span><span>173</span><span>//</span><span>-------------------------------------------
</span><span>174</span><span>//字符串                                                     返回原处
</span><span>175</span><span>176</span><span>//在php中字符串,有一句运算,就是拼接  (echo中','和'.' 的区别)</span><span>177</span><span>178</span><span>$str1</span> = 'hello'<span>;
</span><span>179</span><span>$str2</span>  = ''<span>;
</span><span>180</span><span>181</span><span>$str3</span> = 'world'<span>;
</span><span>182</span><span>echo</span><span>$str1</span>.<span>$str2</span>.<span>$str3</span><span>;  
</span><span>183</span><span>echo</span><span>$str1</span>,<span>$str2</span>,<span>$str3</span><span>;
</span><span>184</span><span>185</span><span>//</span><span> 新手的疑问   </span><span>186</span><span>187</span><span>echo</span><span>$str1</span>.<span>$str2</span>.<span>$str3</span><span>;  
</span><span>188</span><span>//</span><span>这一行是$str1,$str2,$str3在内存中拼接运算
</span><span>189</span><span>//运算出一个'hello world'一个大字符串,
</span><span>190</span><span>//然后echo 之,得到判断的结果  hello world 
</span><span>191</span><span>//==========================================</span><span>192</span><span>193</span><span>echo</span><span>$str1</span>,<span>$str2</span>,<span>$str3</span><span>;
</span><span>194</span><span>//</span><span>echo 是个语句,负责输出用的
</span><span>195</span><span>//可以通过','分割   一次输出多个变量或值来
</span><span>196</span><span>//
</span><span>197</span><span>//综上:
</span><span>198</span><span>//用' . '是先拼接,再整个输出
</span><span>199</span><span>//用' , ' 是挨个儿把3个变量输出。 
</span><span>200</span><span>//
</span><span>201</span><span>//面试时,会碰到 会问法:
</span><span>202</span><span>//用' . ',用' , '那个输出的快,效率高
</span><span>203</span><span>//
</span><span>204</span><span>//答:当然是 ',' 输出快,效率高</span><span>206</span><span>//==========================================
</span><span>207</span><span>//赋值运算符,就是 =  ,作用是,把‘=’右边的值,赋给左边变量       <span>返回原处</span></span><span>208</span><span>$a</span> = 3<span>;
</span><span>209</span><span>$b</span> = <span>$c</span> = 5<span>;
</span><span>210</span><span>211</span><span>212</span><span>//</span><span>==========================================
</span><span>213</span><span>//运算符的运算结果 
</span><span>214</span><span>//
</span><span>215</span><span>//大家想:既然是运算,运算完之后,必须得有一个结果   ---结果值 
</span><span>216</span><span>//3 + 2;  运算结果5
</span><span>217</span><span>//
</span><span>218</span><span>//1. 比较运算符                                               返回原处
</span><span>219</span><span>//注意 :比较去处符返回结果,,只有2个可能   true/false  
</span><span>220</span><span>//
</span><span>221</span><span>//以$a == $b  为例,,要么等,要么不等
</span><span>222</span><span>//要么是真,要么是假
</span><span>223</span><span>//2 ==3;运算结果是:false  
</span><span>224</span><span>225</span><span>//==========================================
</span><span>226</span><span>//2. 字符串运算符                                              返回原处
</span><span>227</span><span>//字符串运算符
</span><span>228</span><span>//$a.$b 
</span><span>229</span><span>//返回结果:拼接后的结果 
</span><span>230</span><span>231</span><span>//==========================================
</span><span>232</span><span>//赋值运算符,返回值是多少呢?</span><span>233</span><span>$a</span> = 3<span>;
</span><span>234</span><span>if</span>(<span>$a</span> = 33<span>){
</span><span>235</span><span>echo</span> 'aa'<span>;
</span><span>236</span> }<span>else</span><span>{
</span><span>237</span><span>echo</span> 'bb'<span>;
</span><span>238</span><span>}
</span><span>239</span><span>//</span><span>赋值运算长符的运算结果,就是 =右边的值 </span><span>240</span><span>$a</span> = <span>$b</span> = <span>$c</span> =88
<span>241</span><span>//</span><span>过程是这样的, $b = 88先进行,赋值后返回88
</span><span>242</span><span>//返回的88,再赋给$c 
</span><span>243</span><span>//同理 ……
</span><span>244</span><span>//最终$a也赋值为88
</span><span>245</span><span>//
</span><span>246</span><span>//
</span><span>247</span><span>//两个难点;
</span><span>248</span><span>//1. 比较运算时,有一个类型转换的问题
</span><span>249</span><span>//2. 凡运算,必有返回值 
</span><span>250</span><span>//比较运算返回布尔值
</span><span>251</span><span>//
</span><span>252</span><span>//赋值运算,返回赋的值本身 
</span><span>253</span><span>254</span><span>//==========================================
</span><span>255</span><span>//6. 逻辑运算符                                       返回原处
</span><span>256</span><span>//
</span><span>257</span><span>//命题:
</span><span>258</span><span>//真命题,假命题
</span><span>259</span><span>//
</span><span>260</span><span>//逻辑运算符:逻辑或 ||  or 
</span><span>261</span><span>//逻辑与   &&  and </span><span>262</span><span>263</span><span>$house</span> = 180<span>;
</span><span>264</span><span>$car</span> = 'BYD'<span>;
</span><span>265</span><span>266</span><span>//</span><span>$res = $house && $car == 'BMW'如果这样写,谁先给结合 ,牵涉到运算优先级的问题
</span><span>267</span><span>//我们推荐,在多个量进行去处的时候,需要先在一块的单元,用()包起来。如:$res = $house && ($car == 'BMW')
</span><span>268</span><span>//这样可以 使程序易读,易理解 ,不容易产生歧义 </span><span>269</span><span>if</span>(<span>$res</span> = <span>$house</span> && <span>$car</span> == 'BMW'<span>){
</span><span>270</span><span>echo</span> '还是可以嫁'<span>;
</span><span>271</span> }<span>else</span><span>{
</span><span>272</span><span>echo</span> '再等两年'<span>;
</span><span>273</span><span>}
</span><span>274</span><span>275</span><span>逻辑运算的优先级
</span><span>276</span> && 的优先级 比 ||<span>高
</span><span>277</span><span>但是在开发中,不推荐写在一起,应用()包起来
</span><span>278</span><span>$a</span> = 3<span>;
</span><span>279</span><span>$b</span> = 5<span>;
</span><span>280</span><span>if</span>((<span>$a</span>==8)||(<span>$b</span>=9<span>)){
</span><span>281</span><span>$a</span>++<span>;
</span><span>282</span><span>$b</span>++<span>;
</span><span>283</span><span>}
</span><span>284</span><span>echo</span><span>$a</span>,'<br>',<span>$b</span><span>;
</span><span>285</span><span>286</span><span>//</span><span>==========================================
</span><span>287</span><span>288</span><span>//逻辑反
</span><span>289</span><span>//一个命题如果是真命题,则其反命题,是假命题
</span><span>290</span><span>//用!表示 </span><span>291</span><span>292</span><span>//==========================================
</span><span>293</span><span>//异或运算  xor                                         返回原处
</span><span>294</span><span>//异或是指,两个条件必须‘一个真’,‘一个假’,才为真</span><span>295</span><span>296</span><span>$li</span> = '男'<span>;
</span><span>297</span><span>$mei</span> = '女'<span>;
</span><span>298</span><span>//</span><span>这个异或表达的是,必须一个为男,</span><span>299</span><span>if</span>(<span>$li</span> == '男') xor (<span>$mei</span> == '男'<span>){
</span><span>300</span><span>echo</span> '可以结婚'<span>;
</span><span>301</span> }<span>else</span><span>{
</span><span>302</span><span>echo</span> '法律禁止,请去北欧'<span>;
</span><span>303</span><span>}
</span><span>304</span><span>305</span><span>306</span><span>//</span><span>==========================================
</span><span>307</span><span>//三元运算符                                              返回原处
</span><span>308</span><span>//
</span><span>309</span><span>//条件?返回值1:返回值2
</span><span>310</span><span>//如果条件为真,则返回值1,否则返回值2
</span><span>311</span><span>//
</span><span>312</span><span>//
</span><span>313</span><span>//比如,在网站中判断一个人有没有登陆
</span><span>314</span><span>//如果登陆,用户名不为空,则显示其用户名
</span><span>315</span><span>//如果没登陆,用户名空,则显示游客。。
</span><span>316</span><span>317</span><span>//$user = 'zhangsan';
</span><span>318</span><span>//if(!=''){
</span><span>319</span><span>//    echo $user;
</span><span>320</span><span>//}else{
</span><span>321</span><span>//    echo '游客';
</span><span>322</span><span>//}
</span><span>323</span><span>//
</span><span>324</span><span>//$user = 'zhangsan';
</span><span>325</span><span>//echo $user?$user:'游客';
</span><span>326</span><span>327</span><span>//程序如果没有三元运算符,可以用什么代替?
</span><span>328</span><span>//
</span><span>329</span><span>//可以用if/else代替
</span><span>330</span><span>//三元中是一个简化的写法 
</span><span>331</span><span>//而且效率没有 if/esle高
</span><span>332</span><span>333</span><span>334</span><span>//==========================================
</span><span>335</span><span>//递增,递减运算符                                          返回原处
</span><span>336</span><span>//
</span><span>337</span><span>//就是语言中没有递增,递减,也不会影响我们写程序。
</span><span>338</span><span>//也是一些场景的简化写法 
</span><span>339</span><span>340</span><span>//分析,$b + 1是一个算术运算,算出的结果是3,这个3是一个‘算出结果’,和$b没有关系
</span><span>341</span><span>//这个算出结果,值给了$a
</span><span>342</span><span>//因此,$a为3,$b为2</span><span>343</span><span>$b</span> = 2<span>;
</span><span>344</span><span>$a</span> = <span>$b</span> +1<span>;
</span><span>345</span><span>echo</span><span>$a</span>,'~',<span>$b</span>,'<br>'<span>;
</span><span>346</span><span>347</span><span>//</span><span>$b++,这是一个递增运算,去处则必有去处结果,
</span><span>348</span><span>//问题:  $b++的运算结果是什么?
</span><span>349</span><span>//答:$b++,运算结果是$b本身
</span><span>350</span><span>//然后再把$b的值+1
</span><span>351</span><span>//就相当于return $b; $b = $b +1;
</span><span>352</span><span>//$b =1;
</span><span>353</span><span>//$a = $b++;
</span><span>354</span><span>//echo $a,'<br>',$b;
</span><span>355</span><span>//
</span><span>356</span><span>//
</span><span>357</span><span>//==========================================</span><span>358</span><span>/*</span><span>位运算符,说白了,就是,二进制运算符                              返回原处
</span><span>359</span><span>//人有10个指头,用10进位,便于计算
</span><span>360</span><span>//
</span><span>361</span><span>//玛雅人,不穿鞋,连脚趾也算上,20进位
</span><span>362</span><span>//进位是多少没关系,关键是方便我们我们使用
</span><span>363</span><span>// 
</span><span>364</span><span>//对于计算机来说,所有的位,都 只有两种状态 0  1
</span><span>365</span><span>//因为百进位上 ,1代表100
</span><span>366</span><span>//10进位上,1代表10
</span><span>367</span><span>//个位,1代表1
</span><span>368</span><span>//
</span><span>369</span><span>//我们知道计算机里的信息,都是以0,1来存储的
</span><span>370</span><span>//一个可以存储0/1单元,称为位bit
</span><span>371</span><span>//
</span><span>372</span><span>//8个位组成一个字节,Byte
</span><span>373</span><span>//字节是计算机里最基本的单位。
</span><span>374</span><span>375</span><span>376</span><span>12 = 8 + 4;
</span><span>377</span><span>   =1*2^3+1*2^2+0*2^1+0*2^0
</span><span>378</span><span>   =1100
</span><span>379</span><span>5=101
</span><span>380</span><span>但是计算机里,最基本的单位就是字节,有8个位,只用了3个怎么办?
</span><span>381</span><span>答:把用的3个或4个位,写在字节的右边
</span><span>382</span><span>左边的这些位,用0补上。
</span><span>383</span><span>因此,计算机里:
</span><span>384</span><span>12=0000 1100
</span><span>385</span><span>5 =0000 0101
</span><span>386</span><span>387</span><span>388</span><span>12 & 5 = 0000 0100 = 4
</span><span>389</span><span>12 | 5 = 0000 1101 = 13
</span><span>390</span><span>12 ^ 5 = 0000 1001 =9
</span><span>391</span><span>按位运算符
</span><span>392</span><span>&按位且  ,把2个二进制值齐,把1看成true ,把0看成false,然后每个位上都做 并且 的运算。
</span><span>393</span><span>|按位或 , 把2个二进制值齐,把1看成true ,把0看成false,然后每个位上都做  或者  的运算。
</span><span>394</span><span>395</span><span>^按位异或    把2个二进制值齐,把1看成true ,把0看成false,然后每个位都不一样时做 异或  的运算。
</span><span>396</span><span>397</span><span>398</span><span>提醒大家:计算机是按位算,我们操作,往往直接10进制
</span><span>399</span><span>*/</span><span>400</span><span>//</span><span>==========================================</span><span>401</span><span>402</span><span>$a</span> = 12<span>;
</span><span>403</span><span>$a</span> = 0000 1100
<span>404</span><span>//</span><span>按位求反</span><span>405</span><span>$a</span> = 1111 0011
<span>406</span><span>echo</span> ~12
<span>407</span><span>//</span><span>计算机里表示负数,是用补码的规则来计算的
</span><span>408</span><span>//具体这样来计算负数,假设有8位
</span><span>409</span><span>//最高位是1,得出符号是负
</span><span>410</span><span>//
</span><span>411</span><span>//开始补码规则 
</span><span>412</span><span>//计算除符号位之外,其他7位的绝对值
</span><span>413</span><span>//(1)111 0011 =115
</span><span>414</span><span>//然后把   绝对值-2^7 = 115 -128 = -13
</span><span>415</span><span>//
</span><span>416</span><span>//因此:
</span><span>417</span><span>//1000 0001 ---不要想当然是 -1
</span><span>418</span><span>//而是  1-2^7 = -127</span><span>419</span> 1111 1111 ---  127-128 = -1
<span>420</span> 1000 0000 ---  0-128 =-128
<span>421</span><span>422</span> 0000 0000 --- 0
<span>423</span> 0111 1111 --- 127
<span>424</span><span>425</span><span>//</span><span>为什么有人问:-128    +127
</span><span>426</span><span>//
</span><span>427</span><span>//直观来理解
</span><span>428</span><span>//-128 ---  0   0 ---  127
</span><span>429</span><span>//位运算,掌握更好,掌握的不熟悉也不要纠结
</span><span>430</span><span>431</span><span>432</span><span>//==========================================
</span><span>433</span><span>//移位运算                                          返回原处</span><span>434</span><span>435</span> 5 = 0000 0101<span>;
</span><span>436</span> 5 //<span>左移
</span><span>437</span><span>//相当于乘2的效果</span><span>438</span>   0000 1010; <span>//</span><span>得到的结果是10  </span><span>439</span> 5 >> 1; <span>//</span><span>右移</span><span>440</span> 0000 0010
<span>441</span><span>//</span><span>相当于除2的效果
</span><span>442</span><span>443</span><span>444</span><span>//==========================================
</span><span>445</span><span>//之前学习了‘量’---变量,常量 
</span><span>446</span><span>//量与量之间,可以运算,运算符
</span><span>447</span><span>//
</span><span>448</span><span>//如果只有量与量与的运算,那么我们学的知识只够做一个计算器
</span><span>449</span><span>450</span><span>//==========================================
</span><span>451</span><span>//想写程序:还得有控制结构
</span><span>452</span><span>//
</span><span>453</span><span>//控制结构,就是条件与逻辑,控制代码的执行顺序
</span><span>454</span><span>//
</span><span>455</span><span>//程序员 是用php  --- 培训 --- 计算机 
</span><span>456</span><span>//如果 --- if
</span><span>457</span><span>//否则如果 ---else if
</span><span>458</span><span>//否则 ---- else   </span><span>459</span><span>$gender</span> = <span>$_GET</span>['gender'<span>];
</span><span>460</span><span>if</span><span>(){
</span><span>461</span> }<span>else</span><span>{
</span><span>462</span><span>463</span><span>}
</span><span>464</span><span>//</span><span>==========================================
</span><span>465</span><span>466</span><span>//有几种控制结构 
</span><span>467</span><span>//答 :  1. 顺序   、  2. 分支  、 3. 循环 
</span><span>468</span><span>//这个3种控制结构 
</span><span>469</span><span>//所有语言都这样                                 返回原处
</span><span>470</span><span>471</span><span>//==========================================
</span><span>472</span><span>// 1. 顺序
</span><span>473</span><span>// 顺序结构就是语句按照你书写的顺序,从前到后顺序执行。
</span><span>474</span><span>// 最容易理解 </span><span>475</span><span>echo</span> 'a:8点了','<br>'<span>;
</span><span>476</span><span>echo</span> 'b:来YY:88354001','<br>'<span>;
</span><span>477</span><span>echo</span> 'c:我听懂了','<br>'<span>;
</span><span>478</span><span>echo</span> 'd:我开始写博客了','<br>'<span>;
</span><span>479</span><span>480</span><span>//</span><span>==========================================
</span><span>481</span><span>// 2. 分支                                                        <span>返回原处</span></span><span>482</span><span>//顾名思义:有分支 ,就像一条大路,走了3岔口,该选择一个走下去了。
</span><span>483</span><span>//最简单的,单路分支 
</span><span>484</span><span>485</span><span>//单路分支 </span><span>486</span><span>$age</span> = 18<span>;
</span><span>487</span><span>if</span>(<span>$age</span> >= 18<span> ){
</span><span>488</span><span>echo</span> '你已成年'<span>;
</span><span>489</span> }<span>//</span><span>这个if中的代码,要么执行,要么不执行
</span><span>490</span><span>//括号中的表达式,如果为真,则执行,否则,不执行</span><span>491</span> -------------------------------------------
<span>492</span><span>//</span><span>双路分支  if /else </span><span>493</span><span>$year</span> = 2012<span>;
</span><span>494</span><span>$birth</span> = 1987<span>;
</span><span>495</span><span>$age</span> = <span>$year</span> - <span>$birth</span><span>496</span><span>if</span>(<span>$age</span> > 28<span>){
</span><span>497</span><span>echo</span> '你是中老年'<span>;
</span><span>498</span> }<span>else</span><span>{
</span><span>499</span><span>echo</span> '你是有为青年'<span>;
</span><span>500</span><span>}
</span><span>501</span><span>//</span><span>if为真,则代码段1执行
</span><span>502</span><span>//if为假,则代码段2执行
</span><span>503</span><span>//if else 中的两个代码,有且只有一个执行。
</span><span>504</span><span>//-------------------------------------------
</span><span>505</span><span>//多路分支 </span><span>506</span><span>$age</span> = 34<span>;
</span><span>507</span><span>if</span>( <span>$age</span>  ){
<span>508</span><span>echo</span> '中年'<span>;
</span><span>509</span> } <span>else</span><span>if</span>(<span>$age</span> > 16 && <span>$age</span> ){
<span>510</span><span>echo</span> '老年'<span>;
</span><span>511</span> }<span>else</span><span>if</span>( <span>$age</span> >28 && <span>$age</span> ){
<span>512</span><span>echo</span> '其他'<span>;
</span><span>513</span><span>}
</span><span>514</span> -------------------------------------------
<span>515</span><span>//</span><span>switch 分支语句                                 <span>返回原处</span></span><span>516</span><span>517</span><span>$day</span> = 2<span>;
</span><span>518</span><span>if</span>(<span>$day</span> == 1<span>){
</span><span>519</span><span>echo</span>  '星期一'<span>;
</span><span>520</span> }<span>else</span><span>if</span>(<span>$day</span> == 2<span>){
</span><span>521</span><span>echo</span> '星期二'<span>;
</span><span>522</span> }<span>else</span><span>if</span>(<span>$day</span> == 3<span>){
</span><span>523</span><span>echo</span> '星期三'<span>;
</span><span>524</span> }<span>else</span><span>if</span>(<span>$day</span> == 4<span>){
</span><span>525</span><span>echo</span> '星期四'<span>;
</span><span>526</span> }<span>else</span><span>if</span>(<span>$day</span> == 5<span>){
</span><span>527</span><span>echo</span> '星期五'<span>;
</span><span>528</span> }<span>else</span><span>if</span>(<span>$day</span> == 6<span>){
</span><span>529</span><span>echo</span> '星期六'<span>;
</span><span>530</span> }<span>else</span><span>if</span>(<span>$day</span> == 7<span>){
</span><span>531</span><span>echo</span> '星期日'<span>;
</span><span>532</span> }<span>else</span><span>{
</span><span>533</span><span>echo</span> '不存在'<span>;
</span><span>534</span><span>}
</span><span>535</span><span>//</span><span>对于一个变量的值,有多种可能性,用if / if else 来比较,当然是可以的。
</span><span>536</span><span>//但是,有一种,更简单的分支结构来替换他</span><span>537</span><span>538</span><span>539</span><span>$day</span> =2<span>;
</span><span>540</span><span>switch</span>(<span>$day</span><span>){
</span><span>541</span><span>case</span> 1:
<span>542</span><span>echo</span> '星期一'<span>;
</span><span>543</span><span>break</span><span>;
</span><span>544</span><span>case</span> 2:
<span>545</span><span>echo</span> '星期二'<span>;
</span><span>546</span><span>break</span><span>;
</span><span>547</span><span>case</span> 3:
<span>548</span><span>echo</span> '星期三'<span>;
</span><span>549</span><span>break</span><span>;
</span><span>550</span><span>case</span> 4:
<span>551</span><span>echo</span> '星期四'<span>;
</span><span>552</span><span>break</span><span>;
</span><span>553</span><span>case</span> 5:
<span>554</span><span>echo</span> '星期五'<span>;
</span><span>555</span><span>break</span><span>;
</span><span>556</span><span>case</span> 6:
<span>557</span><span>echo</span> '星期六'<span>;
</span><span>558</span><span>break</span><span>;
</span><span>559</span><span>case</span> 7:
<span>560</span><span>echo</span> '星期日'<span>;
</span><span>561</span><span>break</span><span>;
</span><span>562</span><span>default</span>:
<span>563</span><span>echo</span> '其他'<span>;
</span><span>564</span> }<span>//</span><span>从上到下,判断$day和case指定的值,是否相等,如果相等,就执行以后的语句,否则就不执行。
</span><span>565</span><span>//因此,一定要用break退出 
</span><span>566</span><span>//如果没用switch case的话我们可以用什么替换?
</span><span>567</span><span>//
</span><span>568</span><span>//答:if / else if else 来替换  ,
</span><span>569</span><span>//
</span><span>570</span><span>//问:switch case ,与,if/esle if/else 相比,各适合什么 样的场合?
</span><span>571</span><span>//switch case 只能判断某变量是否与指定的值相等
</span><span>572</span><span>//
</span><span>573</span><span>//比如:值  1,2,3,4……
</span><span>574</span><span>//但是不能用来判断范围
</span><span>575</span><span>//
</span><span>576</span><span>//而if/ else if /else 可用来判断 范围,甚至更复杂的判断表达式,也可以
</span><span>577</span><span>//而case ,却只能提供一个准备的值,和变量做相等的比较。
</span><span>578</span><span>//如果 需要和几个确认的值比较是否相等,适合用switch\
</span><span>579</span><span>580</span><span>//==========================================
</span><span>581</span><span>582</span><span>//循环结构                                               
</span><span>583</span><span>//编程语言,一般都有for ,   while , do /while 循环
</span><span>584</span><span>//
</span><span>585</span><span>//先看while                                               <span><span>返回原处</span></span></span><span>586</span><span>//while(表达式){
</span><span>587</span><span>//    语句; 
</span><span>588</span><span>//}
</span><span>589</span><span>//判断表达式是否为真,如果为真,则执行语句
</span><span>590</span><span>//执行完语句之后,再回到while 开始处,判断表达式是否为真
</span><span>591</span><span>//如果为真……
</span><span>592</span><span>//…………
</span><span>593</span><span>//……
</span><span>594</span><span>//如果假,本次循环结束 </span><span>595</span><span>596</span><span>$hard</span> = 100<span>;
</span><span>597</span><span>$hit</span> = -1<span>;
</span><span>598</span><span>599</span><span>while</span>(<span>$hard</span> >= 30<span>){
</span><span>600</span><span>$hard</span> = <span>$hard</span> + <span>$hit</span><span>;
</span><span>601</span><span>if</span>(<span>$hard</span> >=30<span>){
</span><span>602</span><span>echo</span> '不服','<br>'<span>;
</span><span>603</span>     }<span>else</span><span>{
</span><span>604</span><span>echo</span> '服了','<br>'<span>;
</span><span>605</span><span>    }
</span><span>606</span><span>}
</span><span>607</span><span>echo</span><span>$hard</span>,'服了吧'<span>;
</span><span>608</span> -------------------------------------------
<span>609</span><span>while</span><span>(){
</span><span>610</span> }<span>//</span><span>  也有一次都不执行的,第一次条件就不成立,直接退出。</span><span>611</span><span>$hard</span> = 20<span>;
</span><span>612</span><span>$hit</span> = -1<span>;
</span><span>613</span><span>614</span><span>while</span>(<span>$hard</span> >= 30<span>){
</span><span>615</span><span>$hard</span> = <span>$hard</span> + <span>$hit</span><span>;
</span><span>616</span><span>if</span>(<span>$hard</span> >=30<span>){
</span><span>617</span><span>echo</span> '不服','<br>'<span>;
</span><span>618</span>     }<span>else</span><span>{
</span><span>619</span><span>echo</span> '服了','<br>'<span>;
</span><span>620</span><span>    }
</span><span>621</span><span>}
</span><span>622</span><span>623</span><span>//</span><span>-------------------------------------------
</span><span>624</span><span>//
</span><span>625</span><span>//如果碰到下面的情况</span><span>626</span><span>while</span>(<span>true</span><span>){
</span><span>627</span><span>echo</span> 'haha<br>'<span>;
</span><span>628</span> }<span>//</span><span>死循环</span><span>629</span> -------------------------------------------
<span>630</span><span>do</span><span>{                                                <span><span><span>返回原处</span></span></span></span><span>631</span><span>632</span> }<span>while</span><span>();  
</span><span>633</span><span>//</span><span>do ,即执行,上来先执行一下语句,然后再去判断
</span><span>634</span><span>//所有,do/while 到至少执行一次</span><span>635</span><span>636</span><span>$hard</span> = 20<span>;
</span><span>637</span><span>$hit</span> = -1<span>;
</span><span>638</span><span>do</span><span>{
</span><span>639</span><span>$hard</span> = <span>$hard</span> + <span>$hit</span><span>;
</span><span>640</span><span>if</span>(<span>$hard</span> >=30<span>){
</span><span>641</span><span>echo</span> '不服','<br>'<span>;
</span><span>642</span>     }<span>else</span><span>{
</span><span>643</span><span>echo</span> '服了','<br>'<span>;
</span><span>644</span><span>    }
</span><span>645</span> }<span>while</span>(<span>$hard</span>>=30<span>);
</span><span>646</span><span>647</span><span>//</span><span>==========================================
</span><span>648</span><span>//for(语句1;语句2;语句3){                               <span><span><span>返回原处</span></span></span></span><span>649</span><span>//    代码段; 
</span><span>650</span><span>//}
</span><span>651</span><span>//语句1,先执行 且只执行1次
</span><span>652</span><span>//然后 语句2判断,如为真,则执行 代码段; ,然后执行  语句3;
</span><span>653</span><span>//
</span><span>654</span><span>//再语句2判断……循环
</span><span>655</span><span>//直到语句2为假,for结束
</span><span>656</span><span>//
</span><span>657</span><span>//-------------------------------------------------------
</span><span>658</span><span>//打印1到100的整数,如果是3的倍数就打印Fizz,如果是5的倍数就打印Buzz
</span><span>659</span><span>//如果是3和5的倍数就打印abcd</span><span>660</span><span>$i</span> = 0<span>;
</span><span>661</span><span>while</span>(++<span>$i</span>){
<span>662</span><span>if</span>(<span>$i</span>%15 == 0<span>){ 
</span><span>663</span><span>echo</span><span>$i</span>,'----abcd----即是3的倍数,又是5的倍数','<br>'<span>; 
</span><span>664</span>     }<span>else</span><span>if</span>(<span>$i</span>%3 == 0<span>){
</span><span>665</span><span>echo</span><span>$i</span>,'----FiZZ----3的倍数','<br>'<span>;
</span><span>666</span>     }<span>else</span><span>if</span>(<span>$i</span>%5 == 0<span>){
</span><span>667</span><span>echo</span><span>$i</span>,'----BuZZ----5的倍数','<br>'<span>;
</span><span>668</span>     }<span>else</span><span>{
</span><span>669</span><span>echo</span><span>$i</span>,'<br>'<span>;
</span><span>670</span><span>    }
</span><span>671</span><span>}
</span><span>672</span> -------------------------------------------------------
<span>673</span><span>674</span><span>//</span><span>公鸡 5元1只,小鸡1元3只,母鸡 3元1只
</span><span>675</span><span>//100元买回100只,问公鸡,母鸡,小鸡各多少只?</span><span>676</span><span>for</span> (<span>$g</span> = 1;<span>$g</span>$g++<span>){
</span><span>677</span><span>for</span>(<span>$m</span> = 1;<span>$m</span>$m++<span>){
</span><span>678</span><span>$x</span> = 100-<span>$g</span>-<span>$m</span><span>;
</span><span>679</span><span>if</span>(5*<span>$g</span>+3*<span>$m</span>+<span>$x</span>/3 == 100<span>){
</span><span>680</span><span>echo</span> '公鸡',<span>$g</span>,'只,','母鸡',<span>$m</span>,'只,','小鸡,',<span>$x</span>,'只,<br>'<span>;
</span><span>681</span><span>        }
</span><span>682</span><span>    }
</span><span>683</span><span>}
</span><span>684</span><span>//</span><span>==========================================
</span><span>685</span><span>//
</span><span>686</span><span>//break 有破坏的意思,直接破坏整个循环语句,不再往下执行了。</span><span>687</span><span>688</span><span>for</span>(<span>$i</span> = 1;<span>$i</span> $i++<span>){
</span><span>689</span><span>if</span>(<span>$i</span> == 6<span>){
</span><span>690</span><span>break</span><span>;
</span><span>691</span>     }<span>else</span><span>{
</span><span>692</span><span>echo</span><span>$i</span>,'<br>'<span>;
</span><span>693</span><span>    }
</span><span>694</span><span>}
</span><span>695</span> --------------------------------------------------------
<span>696</span><span>//</span><span>continue  有继续的意思,跳出本次循环,继续执行下一次循环</span><span>697</span><span>for</span>(<span>$i</span> = 1;<span>$i</span> $i++<span>){
</span><span>698</span><span>if</span>(<span>$i</span> == 6<span>){
</span><span>699</span><span>continue</span><span>;
</span><span>700</span>     }<span>else</span><span>{
</span><span>701</span><span>echo</span><span>$i</span>,'<br>'<span>;
</span><span>702</span><span>    }
</span><span>703</span><span>}
</span><span>704</span><span>705</span> --------------------------------------------------------
<span>706</span><span>//</span><span>过收费站,手上有钱100,000元,当钱>50000时,交手上钱数的5%元,当钱数<span>707</span><span>for</span>(<span>$i</span>=0,<span>$money</span> = 100000;<span>$money</span> >= 5000;){ <span>//</span><span>看此处,第2个‘;’号后竟然是空//的</span><span>708</span><span>if</span>(<span>$money</span>>50000<span>){
</span><span>709</span><span>$money</span> *= 0.95<span>;
</span><span>710</span>  }<span>else</span><span> {
</span><span>711</span><span>$money</span> -=  5000<span>;
</span><span>712</span><span>713</span><span>    }
</span><span>714</span><span>$i</span>+=1<span>;
</span><span>715</span><span>echo</span> '第', <span>$i</span>,'过桥后','剩下的钱数为',<span>$money</span>,'<br>'<span>;
</span><span>716</span><span>}
</span><span>717</span><span>718</span><span>719</span><span>//</span><span>如下</span><span>720</span><span>for</span><span>(){
</span><span>721</span><span>echo</span>  'haha'<span>;
</span><span>722</span><span>//</span><span>别运行,死循环</span><span>723</span><span>}
</span><span>724</span><span>725</span><span>726</span> */<br>相关的视频连接:<br>1. 位运算符 ,移位运算<br>2.三大控制结构之顺序和分支</span>

 php中的运算符、控制结构

以上就介紹了Java運算子 php中的運算子、控制結構,包含了Java運算子方面的內容,希望對PHP教學有興趣的朋友有所幫助。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
超越炒作:評估當今PHP的角色超越炒作:評估當今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

PHP中的弱參考是什麼?什麼時候有用?PHP中的弱參考是什麼?什麼時候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

解釋PHP中的__ Invoke Magic方法。解釋PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

解釋PHP 8.1中的纖維以進行並發。解釋PHP 8.1中的纖維以進行並發。Apr 12, 2025 am 12:05 AM

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區:資源,支持和發展PHP社區:資源,支持和發展Apr 12, 2025 am 12:04 AM

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP與Python:了解差異PHP與Python:了解差異Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

php:死亡還是簡單地適應?php:死亡還是簡單地適應?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來:改編和創新PHP的未來:改編和創新Apr 11, 2025 am 12:01 AM

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用