Java operators operators and control structures in php
Jul 28, 2016 am 08:27 AMOperators in php
1. Assignment operator
2. Arithmetic operator
3. Comparison operator
4. String operator
5. Increment operator
6. Logical operator (exclusive OR operation xor)
7. Ternary operator
8. Bit operator (shift operation)
10. The difference between ',' and '.' in echo
9. Type conversion
1). Boolean value - string
2) . String - Conversion of numbers
3). String - Conversion of Boolean values ??
4). Numbers - Conversion of Boolean values ??
5). Numbers - Conversion of strings
Control structure
1. if single-way branch
2. if /else double-way branch, the two code segments in if/else in the double-way branch must have and only one section is executed
if/else if/else if.../else multi-way Branch
3. switch case, which is convenient for comparing multiple possible values ??of the variable being judged.
4. while (expression){
code segment}
5. do{
code segment;}while(expression);
6. for(statement 1; statement 2; statement 3) {
code segment ;}
Statement 1, execute first and only once
then judge statement 2, if it is true, execute the code segment;, then execute statement 3;
then judge statement 2...loop
until statement 2 is false, for end
Code display
<span> 1</span><span>//</span><span>========================================== </span><span> 2</span><span> 3</span><span>//2. 算術(shù)運(yùn)算 </span>返回原處 <span> 4</span><span>// </span><span> 5</span><span>//php程序如何進(jìn)行加減乘除 </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計(jì)算結(jié)果賦給$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>計(jì)算$a * $b的結(jié)果 賦給$c </span><span> 16</span><span>echo</span><span>$b</span>/<span>$a</span>,'<br />';<span>//</span><span>計(jì)算$b/$a的結(jié)果,賦給$c </span><span> 17</span><span> 18</span><span>//如果是在C語言中,$b,$a,都是整型,因此計(jì)算出來的$c也是整型 </span><span> 19</span><span>//在php中,變量的值可以隨意改變,而且變量的類型也可以改變。 </span><span> 20</span><span>// </span><span> 21</span><span>//比如:變量$c是整型,可以突然為之賦一個(gè)浮點(diǎn)型值。 </span><span> 22</span><span>//因此php稱為動(dòng)態(tài)語言。 </span><span> 23</span><span> 24</span><span> 25</span><span> 26</span><span> 27</span><span>//-----------------------------------------------------</span><span> 28</span><span>求余就是 取模 運(yùn)算 返回原處 </span><span> 29</span><span>在計(jì)算機(jī)里計(jì)算除法的時(shí)候,算出來2個(gè)結(jié)果 </span><span> 30</span><span> 31</span><span>商和余數(shù) </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>小測(cè)試,判斷一個(gè)數(shù)是偶數(shù),還是奇數(shù)? </span><span> 41</span><span>//可以對(duì)2 取模,余數(shù)是1,則為奇數(shù),如果余數(shù)為0,則為奇數(shù)</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>,'是奇數(shù)'<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>,'是偶數(shù)'<span>; </span><span> 50</span><span>} </span><span> 51</span><span> 52</span><span>//</span><span>上初中了,有了負(fù)數(shù)的概念</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>注意:在取模運(yùn)算的時(shí), </span><span> 62</span><span>//運(yùn)算的正負(fù)結(jié)果,取決于被除數(shù)的符號(hào) </span><span> 63</span><span>//結(jié)果的符號(hào),和被除數(shù)的符號(hào)一致 </span><span> 64</span><span>//================================================ </span><span> 65</span><span> 66</span><span> // 比較運(yùn)算符 返回原處 </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 有一個(gè)為真都行,即條件滿足 </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>在不同的類型比較時(shí) </span><span>101</span><span>//php程序本身 </span><span>102</span><span>// </span><span>103</span><span>//會(huì)把變量 轉(zhuǎn)換成一致的類型,然后再去比較 </span><span>104</span><span>// </span><span>105</span><span>//著重記以下轉(zhuǎn)換 返回原處 </span><span>106</span><span>//1. 布爾值 --字符串 </span><span>107</span><span>//2. 字符串 -- 數(shù)字的轉(zhuǎn)換 </span><span>108</span><span>//3. 字符串-- 布爾值的轉(zhuǎn)換 </span><span>109</span><span>//4. 數(shù)字 - - 布爾值的轉(zhuǎn)換 </span><span>110</span><span>//5. 數(shù)字 --字符串的轉(zhuǎn)換 </span><span>111</span><span>// </span><span>112</span><span>//以5 ==true 比較為例 </span><span>113</span><span>//的把 整型 ,轉(zhuǎn)成布爾型 </span><span>114</span><span>// </span><span>115</span><span>//其實(shí)有的語言中,根本就沒有布爾型,都是拿1,0充當(dāng)true / false </span><span>116</span><span>//0 / 0.0 這兩個(gè)轉(zhuǎn)換為布爾類型為false </span><span>117</span><span>//其他都是true ,負(fù)數(shù)也是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. 字符串 --數(shù)字的轉(zhuǎn)換 </span><span>129</span><span>//從字符串左端開始找數(shù)字,直到第一個(gè)非數(shù)字結(jié)束,取出來的這一部分,即是轉(zhuǎn)換后的值 </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>運(yùn)算結(jié)果是0 </span><span>136</span><span>137</span><span>//------------------------------------------- </span><span>138</span><span>//3. 字符串 --布爾的轉(zhuǎn)換 </span><span>139</span><span>//''字符串,'0',這種轉(zhuǎn)換成 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. 字符串 --布爾的轉(zhuǎn)換 </span><span>160</span><span>// 只有整型的0 ,和浮點(diǎn)的0.0 ,轉(zhuǎn)換false </span><span>161</span><span>//其他 ,甚至負(fù)數(shù) ,也轉(zhuǎn)換成true </span><span>162</span><span>163</span><span>164</span><span>165</span><span>//------------------------------------------- </span><span>166</span><span>//5. 數(shù)字 --字符串的轉(zhuǎn)換 </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中字符串,有一句運(yùn)算,就是拼接 (echo中','和'.' 的區(qū)別)</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在內(nèi)存中拼接運(yùn)算 </span><span>189</span><span>//運(yùn)算出一個(gè)'hello world'一個(gè)大字符串, </span><span>190</span><span>//然后echo 之,得到判斷的結(jié)果 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 是個(gè)語句,負(fù)責(zé)輸出用的 </span><span>195</span><span>//可以通過','分割 一次輸出多個(gè)變量或值來 </span><span>196</span><span>// </span><span>197</span><span>//綜上: </span><span>198</span><span>//用' . '是先拼接,再整個(gè)輸出 </span><span>199</span><span>//用' , ' 是挨個(gè)兒把3個(gè)變量輸出。 </span><span>200</span><span>// </span><span>201</span><span>//面試時(shí),會(huì)碰到 會(huì)問法: </span><span>202</span><span>//用' . ',用' , '那個(gè)輸出的快,效率高 </span><span>203</span><span>// </span><span>204</span><span>//答:當(dāng)然是 ',' 輸出快,效率高</span><span>206</span><span>//========================================== </span><span>207</span><span>//賦值運(yùn)算符,就是 = ,作用是,把‘=’右邊的值,賦給左邊變量 <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>//運(yùn)算符的運(yùn)算結(jié)果 </span><span>214</span><span>// </span><span>215</span><span>//大家想:既然是運(yùn)算,運(yùn)算完之后,必須得有一個(gè)結(jié)果 ---結(jié)果值 </span><span>216</span><span>//3 + 2; 運(yùn)算結(jié)果5 </span><span>217</span><span>// </span><span>218</span><span>//1. 比較運(yùn)算符 返回原處 </span><span>219</span><span>//注意 :比較去處符返回結(jié)果,,只有2個(gè)可能 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;運(yùn)算結(jié)果是:false </span><span>224</span><span>225</span><span>//========================================== </span><span>226</span><span>//2. 字符串運(yùn)算符 返回原處 </span><span>227</span><span>//字符串運(yùn)算符 </span><span>228</span><span>//$a.$b </span><span>229</span><span>//返回結(jié)果:拼接后的結(jié)果 </span><span>230</span><span>231</span><span>//========================================== </span><span>232</span><span>//賦值運(yùn)算符,返回值是多少呢?</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>賦值運(yùn)算長符的運(yùn)算結(jié)果,就是 =右邊的值 </span><span>240</span><span>$a</span> = <span>$b</span> = <span>$c</span> =88 <span>241</span><span>//</span><span>過程是這樣的, $b = 88先進(jìn)行,賦值后返回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>//兩個(gè)難點(diǎn); </span><span>248</span><span>//1. 比較運(yùn)算時(shí),有一個(gè)類型轉(zhuǎn)換的問題 </span><span>249</span><span>//2. 凡運(yùn)算,必有返回值 </span><span>250</span><span>//比較運(yùn)算返回布爾值 </span><span>251</span><span>// </span><span>252</span><span>//賦值運(yùn)算,返回賦的值本身 </span><span>253</span><span>254</span><span>//========================================== </span><span>255</span><span>//6. 邏輯運(yùn)算符 返回原處 </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>//邏輯運(yùn)算符:邏輯或 || 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'如果這樣寫,誰先給結(jié)合 ,牽涉到運(yùn)算優(yōu)先級(jí)的問題 </span><span>267</span><span>//我們推薦,在多個(gè)量進(jìn)行去處的時(shí)候,需要先在一塊的單元,用()包起來。如:$res = $house && ($car == 'BMW') </span><span>268</span><span>//這樣可以 使程序易讀,易理解 ,不容易產(chǎn)生歧義 </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>邏輯運(yùn)算的優(yōu)先級(jí) </span><span>276</span> && 的優(yōu)先級(jí) 比 ||<span>高 </span><span>277</span><span>但是在開發(fā)中,不推薦寫在一起,應(yīng)用()包起來 </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>//一個(gè)命題如果是真命題,則其反命題,是假命題 </span><span>290</span><span>//用!表示 </span><span>291</span><span>292</span><span>//========================================== </span><span>293</span><span>//異或運(yùn)算 xor 返回原處 </span><span>294</span><span>//異或是指,兩個(gè)條件必須‘一個(gè)真’,‘一個(gè)假’,才為真</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>這個(gè)異或表達(dá)的是,必須一個(gè)為男,</span><span>299</span><span>if</span>(<span>$li</span> == '男') xor (<span>$mei</span> == '男'<span>){ </span><span>300</span><span>echo</span> '可以結(jié)婚'<span>; </span><span>301</span> }<span>else</span><span>{ </span><span>302</span><span>echo</span> '法律禁止,請(qǐng)去北歐'<span>; </span><span>303</span><span>} </span><span>304</span><span>305</span><span>306</span><span>//</span><span>========================================== </span><span>307</span><span>//三元運(yùn)算符 返回原處 </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>//比如,在網(wǎng)站中判斷一個(gè)人有沒有登陸 </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>//程序如果沒有三元運(yùn)算符,可以用什么代替? </span><span>328</span><span>// </span><span>329</span><span>//可以用if/else代替 </span><span>330</span><span>//三元中是一個(gè)簡化的寫法 </span><span>331</span><span>//而且效率沒有 if/esle高 </span><span>332</span><span>333</span><span>334</span><span>//========================================== </span><span>335</span><span>//遞增,遞減運(yùn)算符 返回原處 </span><span>336</span><span>// </span><span>337</span><span>//就是語言中沒有遞增,遞減,也不會(huì)影響我們寫程序。 </span><span>338</span><span>//也是一些場(chǎng)景的簡化寫法 </span><span>339</span><span>340</span><span>//分析,$b + 1是一個(gè)算術(shù)運(yùn)算,算出的結(jié)果是3,這個(gè)3是一個(gè)‘算出結(jié)果’,和$b沒有關(guān)系 </span><span>341</span><span>//這個(gè)算出結(jié)果,值給了$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++,這是一個(gè)遞增運(yùn)算,去處則必有去處結(jié)果, </span><span>348</span><span>//問題: $b++的運(yùn)算結(jié)果是什么? </span><span>349</span><span>//答:$b++,運(yùn)算結(jié)果是$b本身 </span><span>350</span><span>//然后再把$b的值+1 </span><span>351</span><span>//就相當(dāng)于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>位運(yùn)算符,說白了,就是,二進(jìn)制運(yùn)算符 返回原處 </span><span>359</span><span>//人有10個(gè)指頭,用10進(jìn)位,便于計(jì)算 </span><span>360</span><span>// </span><span>361</span><span>//瑪雅人,不穿鞋,連腳趾也算上,20進(jìn)位 </span><span>362</span><span>//進(jìn)位是多少?zèng)]關(guān)系,關(guān)鍵是方便我們我們使用 </span><span>363</span><span>// </span><span>364</span><span>//對(duì)于計(jì)算機(jī)來說,所有的位,都 只有兩種狀態(tài) 0 1 </span><span>365</span><span>//因?yàn)榘龠M(jìn)位上 ,1代表100 </span><span>366</span><span>//10進(jìn)位上,1代表10 </span><span>367</span><span>//個(gè)位,1代表1 </span><span>368</span><span>// </span><span>369</span><span>//我們知道計(jì)算機(jī)里的信息,都是以0,1來存儲(chǔ)的 </span><span>370</span><span>//一個(gè)可以存儲(chǔ)0/1單元,稱為位bit </span><span>371</span><span>// </span><span>372</span><span>//8個(gè)位組成一個(gè)字節(jié),Byte </span><span>373</span><span>//字節(jié)是計(jì)算機(jī)里最基本的單位。 </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>但是計(jì)算機(jī)里,最基本的單位就是字節(jié),有8個(gè)位,只用了3個(gè)怎么辦? </span><span>381</span><span>答:把用的3個(gè)或4個(gè)位,寫在字節(jié)的右邊 </span><span>382</span><span>左邊的這些位,用0補(bǔ)上。 </span><span>383</span><span>因此,計(jì)算機(jī)里: </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>按位運(yùn)算符 </span><span>392</span><span>&按位且 ,把2個(gè)二進(jìn)制值齊,把1看成true ,把0看成false,然后每個(gè)位上都做 并且 的運(yùn)算。 </span><span>393</span><span>|按位或 , 把2個(gè)二進(jìn)制值齊,把1看成true ,把0看成false,然后每個(gè)位上都做 或者 的運(yùn)算。 </span><span>394</span><span>395</span><span>^按位異或 把2個(gè)二進(jìn)制值齊,把1看成true ,把0看成false,然后每個(gè)位都不一樣時(shí)做 異或 的運(yùn)算。 </span><span>396</span><span>397</span><span>398</span><span>提醒大家:計(jì)算機(jī)是按位算,我們操作,往往直接10進(jìn)制 </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>計(jì)算機(jī)里表示負(fù)數(shù),是用補(bǔ)碼的規(guī)則來計(jì)算的 </span><span>408</span><span>//具體這樣來計(jì)算負(fù)數(shù),假設(shè)有8位 </span><span>409</span><span>//最高位是1,得出符號(hào)是負(fù) </span><span>410</span><span>// </span><span>411</span><span>//開始補(bǔ)碼規(guī)則 </span><span>412</span><span>//計(jì)算除符號(hào)位之外,其他7位的絕對(duì)值 </span><span>413</span><span>//(1)111 0011 =115 </span><span>414</span><span>//然后把 絕對(duì)值-2^7 = 115 -128 = -13 </span><span>415</span><span>// </span><span>416</span><span>//因此: </span><span>417</span><span>//1000 0001 ---不要想當(dāng)然是 -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>//位運(yùn)算,掌握更好,掌握的不熟悉也不要糾結(jié) </span><span>430</span><span>431</span><span>432</span><span>//========================================== </span><span>433</span><span>//移位運(yùn)算 返回原處</span><span>434</span><span>435</span> 5 = 0000 0101<span>; </span><span>436</span> 5 << 1; <span>//</span><span>左移 </span><span>437</span><span>//相當(dāng)于乘2的效果</span><span>438</span> 0000 1010; <span>//</span><span>得到的結(jié)果是10 </span><span>439</span> 5 >> 1; <span>//</span><span>右移</span><span>440</span> 0000 0010 <span>441</span><span>//</span><span>相當(dāng)于除2的效果 </span><span>442</span><span>443</span><span>444</span><span>//========================================== </span><span>445</span><span>//之前學(xué)習(xí)了‘量’---變量,常量 </span><span>446</span><span>//量與量之間,可以運(yùn)算,運(yùn)算符 </span><span>447</span><span>// </span><span>448</span><span>//如果只有量與量與的運(yùn)算,那么我們學(xué)的知識(shí)只夠做一個(gè)計(jì)算器 </span><span>449</span><span>450</span><span>//========================================== </span><span>451</span><span>//想寫程序:還得有控制結(jié)構(gòu) </span><span>452</span><span>// </span><span>453</span><span>//控制結(jié)構(gòu),就是條件與邏輯,控制代碼的執(zhí)行順序 </span><span>454</span><span>// </span><span>455</span><span>//程序員 是用php --- 培訓(xùn) --- 計(jì)算機(jī) </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>//有幾種控制結(jié)構(gòu) </span><span>467</span><span>//答 : 1. 順序 、 2. 分支 、 3. 循環(huán) </span><span>468</span><span>//這個(gè)3種控制結(jié)構(gòu) </span><span>469</span><span>//所有語言都這樣 返回原處 </span><span>470</span><span>471</span><span>//========================================== </span><span>472</span><span>// 1. 順序 </span><span>473</span><span>// 順序結(jié)構(gòu)就是語句按照你書寫的順序,從前到后順序執(zhí)行。 </span><span>474</span><span>// 最容易理解 </span><span>475</span><span>echo</span> 'a:8點(diǎn)了','<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岔口,該選擇一個(gè)走下去了。 </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>這個(gè)if中的代碼,要么執(zhí)行,要么不執(zhí)行 </span><span>490</span><span>//括號(hào)中的表達(dá)式,如果為真,則執(zhí)行,否則,不執(zhí)行</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執(zhí)行 </span><span>502</span><span>//if為假,則代碼段2執(zhí)行 </span><span>503</span><span>//if else 中的兩個(gè)代碼,有且只有一個(gè)執(zhí)行。 </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> <=16<span> ){ </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> <= 28<span>){ </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> <=300<span>){ </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>對(duì)于一個(gè)變量的值,有多種可能性,用if / if else 來比較,當(dāng)然是可以的。 </span><span>536</span><span>//但是,有一種,更簡單的分支結(jié)構(gòu)來替換他</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指定的值,是否相等,如果相等,就執(zhí)行以后的語句,否則就不執(zhí)行。 </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 相比,各適合什么 樣的場(chǎng)合? </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 可用來判斷 范圍,甚至更復(fù)雜的判斷表達(dá)式,也可以 </span><span>577</span><span>//而case ,卻只能提供一個(gè)準(zhǔn)備的值,和變量做相等的比較。 </span><span>578</span><span>//如果 需要和幾個(gè)確認(rèn)的值比較是否相等,適合用switch\ </span><span>579</span><span>580</span><span>//========================================== </span><span>581</span><span>582</span><span>//循環(huán)結(jié)構(gòu) </span><span>583</span><span>//編程語言,一般都有for , while , do /while 循環(huán) </span><span>584</span><span>// </span><span>585</span><span>//先看while <span><span>返回原處</span></span></span><span>586</span><span>//while(表達(dá)式){ </span><span>587</span><span>// 語句; </span><span>588</span><span>//} </span><span>589</span><span>//判斷表達(dá)式是否為真,如果為真,則執(zhí)行語句 </span><span>590</span><span>//執(zhí)行完語句之后,再回到while 開始處,判斷表達(dá)式是否為真 </span><span>591</span><span>//如果為真…… </span><span>592</span><span>//………… </span><span>593</span><span>//…… </span><span>594</span><span>//如果假,本次循環(huán)結(jié)束 </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> 也有一次都不執(zhí)行的,第一次條件就不成立,直接退出。</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>死循環(huán)</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 ,即執(zhí)行,上來先執(zhí)行一下語句,然后再去判斷 </span><span>634</span><span>//所有,do/while 到至少執(zhí)行一次</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,先執(zhí)行 且只執(zhí)行1次 </span><span>652</span><span>//然后 語句2判斷,如為真,則執(zhí)行 代碼段; ,然后執(zhí)行 語句3; </span><span>653</span><span>// </span><span>654</span><span>//再語句2判斷……循環(huán) </span><span>655</span><span>//直到語句2為假,for結(jié)束 </span><span>656</span><span>// </span><span>657</span><span>//------------------------------------------------------- </span><span>658</span><span>//打印1到100的整數(shù),如果是3的倍數(shù)就打印Fizz,如果是5的倍數(shù)就打印Buzz </span><span>659</span><span>//如果是3和5的倍數(shù)就打印abcd</span><span>660</span><span>$i</span> = 0<span>; </span><span>661</span><span>while</span>(++<span>$i</span><=100<span>){ </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的倍數(shù),又是5的倍數(shù)','<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的倍數(shù)','<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的倍數(shù)','<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><=20;<span>$g</span>++<span>){ </span><span>677</span><span>for</span>(<span>$m</span> = 1;<span>$m</span><=34;<span>$m</span>++<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 有破壞的意思,直接破壞整個(gè)循環(huán)語句,不再往下執(zhí)行了。</span><span>687</span><span>688</span><span>for</span>(<span>$i</span> = 1;<span>$i</span> < 10;<span>$i</span>++<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 有繼續(xù)的意思,跳出本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)</span><span>697</span><span>for</span>(<span>$i</span> = 1;<span>$i</span> < 10;<span>$i</span>++<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>過收費(fèi)站,手上有錢100,000元,當(dāng)錢>50000時(shí),交手上錢數(shù)的5%元,當(dāng)錢數(shù)<=50,000時(shí),每次交5000元,問能過幾次?</span><span>707</span><span>for</span>(<span>$i</span>=0,<span>$money</span> = 100000;<span>$money</span> >= 5000;){ <span>//</span><span>看此處,第2個(gè)‘;’號(hào)后竟然是空//的</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>,'過橋后','剩下的錢數(shù)為',<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>別運(yùn)行,死循環(huán)</span><span>723</span><span>} </span><span>724</span><span>725</span><span>726</span> */<br>相關(guān)的視頻連接:<br>1. 位運(yùn)算符 ,移位運(yùn)算<br>2.三大控制結(jié)構(gòu)之順序和分支</span>
The above introduces the Java operators, operators and control structures in PHP, including the content of Java operators. I hope it will be helpful to friends who are interested in PHP tutorials.

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Common problems and solutions for PHP variable scope include: 1. The global variable cannot be accessed within the function, and it needs to be passed in using the global keyword or parameter; 2. The static variable is declared with static, and it is only initialized once and the value is maintained between multiple calls; 3. Hyperglobal variables such as $_GET and $_POST can be used directly in any scope, but you need to pay attention to safe filtering; 4. Anonymous functions need to introduce parent scope variables through the use keyword, and when modifying external variables, you need to pass a reference. Mastering these rules can help avoid errors and improve code stability.

To safely handle PHP file uploads, you need to verify the source and type, control the file name and path, set server restrictions, and process media files twice. 1. Verify the upload source to prevent CSRF through token and detect the real MIME type through finfo_file using whitelist control; 2. Rename the file to a random string and determine the extension to store it in a non-Web directory according to the detection type; 3. PHP configuration limits the upload size and temporary directory Nginx/Apache prohibits access to the upload directory; 4. The GD library resaves the pictures to clear potential malicious data.

There are three common methods for PHP comment code: 1. Use // or # to block one line of code, and it is recommended to use //; 2. Use /.../ to wrap code blocks with multiple lines, which cannot be nested but can be crossed; 3. Combination skills comments such as using /if(){}/ to control logic blocks, or to improve efficiency with editor shortcut keys, you should pay attention to closing symbols and avoid nesting when using them.

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

The key to writing PHP comments is to clarify the purpose and specifications. Comments should explain "why" rather than "what was done", avoiding redundancy or too simplicity. 1. Use a unified format, such as docblock (/*/) for class and method descriptions to improve readability and tool compatibility; 2. Emphasize the reasons behind the logic, such as why JS jumps need to be output manually; 3. Add an overview description before complex code, describe the process in steps, and help understand the overall idea; 4. Use TODO and FIXME rationally to mark to-do items and problems to facilitate subsequent tracking and collaboration. Good annotations can reduce communication costs and improve code maintenance efficiency.

TolearnPHPeffectively,startbysettingupalocalserverenvironmentusingtoolslikeXAMPPandacodeeditorlikeVSCode.1)InstallXAMPPforApache,MySQL,andPHP.2)Useacodeeditorforsyntaxsupport.3)TestyoursetupwithasimplePHPfile.Next,learnPHPbasicsincludingvariables,ech

In PHP, you can use square brackets or curly braces to obtain string specific index characters, but square brackets are recommended; the index starts from 0, and the access outside the range returns a null value and cannot be assigned a value; mb_substr is required to handle multi-byte characters. For example: $str="hello";echo$str[0]; output h; and Chinese characters such as mb_substr($str,1,1) need to obtain the correct result; in actual applications, the length of the string should be checked before looping, dynamic strings need to be verified for validity, and multilingual projects recommend using multi-byte security functions uniformly.

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre
