PHP02新手觀念qa搞清楚篇

02新手觀念qa搞清楚篇

#見議閱讀程度:看過”學php之超入門新手專用”或有接觸過一點php的人
#本篇無任何範例~純粹簡單觀念說明
#!!!在次強調~沒摸過php的新手可以不用看,建議先把”學php之超入門新手專用”研究完在看比較有用!!!


請先試著回答每節下面的問題~如果你覺得太簡單了就可以直接跳過,假若你覺得有點不懂沒關係~解答也在下面,那如果在看不懂那就要直接問我,我會解釋的更詳細:

  第一節 有趣的地方

q1 include(“檔案位置”); 幹嘛用的?
q2  為什麼沒加分號可以跑?
q3 echo ‘xxxx”yyyy”xxxx’; 可以跑耶為什麼?
q4 header(“location:http://tw.yahoo.com”) 執行後會發生什麼事?
q5 echo $REMOTE_ADDR; 會出現什麼?

a1 將外部的檔案抓進來成為本身網頁的一部分
a2 因為只有一行所以不加分號沒關係
a3 因為單引號跟雙引號可以互相交差使用
a4 本頁會自動轉到雅虎奇摩
a5 會出現遊覽者的ip位置

  第二節 變數

q1 如果沒設變數的值而直接用echo 叫出變數,那會出現什麼?
q2 $var = NULL ; 是什麼意思?
q3 $var++ 和 $var– 是幹嘛用的?
q4 $var++ vs ++$var 差在那裡?

a1 就是…什麼都沒出現
a2 讓這個變數裡原本有的東西變成沒有
a3 前者是程式執行則會自動加1 後者是減1
a4 前者是執行完才加1 後者是先加1才執行,通常在陣列很好用

  第三節 流程控制

q1 最常用的幾個流程控制
q2 為什麼if($var < 1) echo $var ; 這段程式沒加{}不會出錯?
q3 if($var = 1) echo “vv”; 如果$var=5但一定可以跑出vv,為什麼?
q4 if($var = 1){ } vs if(var = = 1){} 的差別在那?

a1 if(判斷條件}{條件成立的執行內容}
for(初始值;判斷條件;執行內容){重覆執行的內容}
while(判斷條件){條件成立時重覆執行的內容}
a2 因為執行內容只有一行,所以不用加大括號{}
a3 因為在判斷條件裡是把1的值給$var變數,那麼$var變數是不是就等於1了,所以條件成立
a4 前者是把1的值給$var變數,後者是比較量$var的值是否與1相等

  第四節 函式function

q1 如何自己做一個函式?
q2 如何呼叫函式出來?
q3 在函式裡echo 和return的差別?
q4 函式裡的變裡跟函式外的變數有什麼關連性嗎?
q5 如何從函式裡面去改變外面變數的值?

a1 只要寫 function 函式名字(參數){ 要執行的程式 } 即可,例如
function test(){echo “this is function”;}
a2 直接寫函式名並加小括號,例 test();
a3 echo是直接將值po出來,return是將值先傳給函式,然後在由程式控制值的動向
a4 完全沒有,也就是說相同名稱的變數在函式內的值不會引響到函式外的值
a5 只要在函式裡宣告global全域變數即可

  第五節 陣列

q1 建立陣列的有那兩種方法?
q2 下面兩個陣列差在那?
$arraystr[a] = aaa; $arrayint[0] = 000;
$arraystr[b] = bbb; $arrayint[1] = 111;
$arraystr[c] = ccc; $arrayint[2] = 222;
q3 each($arraystr); 是幹嘛用的?
q4 list($var1,$var2); 是幹嘛用的?
q5 把上面的陣列po出來的四種方法

a1 直接建陣列,例:$陣列名[鍵值]=資料,and 用函式例:$陣列名=array(資料1,資料2,資枓n)
a2 裡面的key值是[a]叫關聯陣列,key值可以是字串,是[0]就是一般的陣列key值只能放數字
a3 將陣列裡的key值和value值取出來
a4 將取得的資料照順序分配給$var1及$var2
a5 第一種直接po 關聯陣列和一般陣列都適用
例:echo $arraystr[a]; 或 echo $arraystr[0];
第二種用for回圈 只適合一般陣列
例:for($i=0;$i<3;$i++){echo $arrayint[$i];}
第三種用list() 適合關聯陣列與一般陣列
例list($a,$b,$c)= $arraystr;echo $a,$b,$c;
第四種是合體技用while  適合關聯陣列與一般陣列
例while(list($key,$value)=each($arraystr)){echo $key,$value;}

  第六節 有問題的話

1 就直接聯絡俺即可,我會盡快回復
2 問題盡量描述清楚~