php

[PHP] 基礎變數 $ & 介紹

PHP 基礎變數 $ & 介紹
時間 Mon Mar 1 14:49:37 2010

好吧 這篇應該算是基礎的定義教學 早在更前面幾篇就應該先打的才對
使用變數 $
php的變數 沒有像c等那些那麼嚴謹 一開始就要宣告
(當然要用時最好還是先宣告一下比較好 不然apache裡面的error_log會有一大堆的waring會很討厭)

php變數 想要直接用就好 也不用告訴她你是什麼型態的變數
他會自動判斷
$變數名稱=變數值 宣告變數就得要用$開頭
如$aa=10; 這樣
而PHP 英文大小寫視為不同變數 且 不一定支援中文 有的可以有的不行

所以還是少用中文吧

參考變數 &
用&來參考另依個變數的值

 $aa=1234
 $bb=&$aa 

//這樣這兩個變數會互相參考 一個改變另一個也會跟著改變
// 也就是就算bb改了 aa也會改 當然aa改 bb也是跟著改

阿如果有時候 對於php自動判斷變數型態不高興 你想自己定義改變時
settype()
settype($變數名稱,資料型態)
如settype($data,float); //把$data轉成浮點

如果你不知道這變數是什麼型態 就先問他吧
gettype(字串)
gettype($data) 像這樣 你就可以知道需不需要幫他更改一下型態了
好 我們來實戰一下

<?php
$my_name="davidou";
echo $_GET['somebody'].",您好,歡迎光臨{$my_name}的網站!";
?>

所以可見的是 我們創造了一個$my_name的變數 他值是davidou
而這邊$_GET[‘somebody’] 是一個外部變數
你會在網址上看到http:// …….index.php?somebody=davidou
像這樣somebody=davidou 就是一個寫在網址上的外部變數
(我認為) 很多程式設計員 都把資料放再這樣的一個網址上面
所以只要改改變數 就可以出現你想要的畫面 例如somebody=admin …
用這種方式可以(破解?)很多寫的很爛的網站 就知道他的網頁重要資料了
而程式碼上{}是用來隔離變數跟字串用的
所以也可以用 “.$my_name.” 等方式都行

 

基礎變數介紹 part II

這篇是上一篇的延伸
上一篇 只有說在網址後面 有?somebody=davidou 這串

但是這串還是要我們程式自己產生給網址阿 總不能教使用者自己打吧

<html>
<head><title>123 </title></head>
<body>
<form action="demo.php" method="get">
請輸入姓名:<input type="text" name="somebody">
<input type="submit" value="送出">
</form>
</body></html>

我們再這邊寫一個form表單讓他送出後會對demo.php有反應
action 就是說要把這表單的內容 送去哪裡的意思
而 method 就是決定這表單的傳送方式 預設就是採用get
而這時候網址上就會出現
http:// ……x.php?元件名稱=值&元件名稱=值&….
阿這樣很不安全阿 傳啥都被人家看出來 人家還可以自己打網址…
所以我們就要採用另一個用法
method=”post”
而這樣值就會在背景傳送了 而不會被發現

比較:那你一定會認為post一定比get好阿
那可不一定post的安全而get是方便! 
如果使用者想把你這網頁加入書籤的話 
post網頁根本就沒得儲存 會跳到原始頁 
而get就會是它顯示的那頁畫面 
所以搜尋引擎都是用get來顯示結果的 
所以上一篇$_GET[‘somebody’] 如果你是用POST來傳送

你就得要改成$_POST[‘somebody’]來接收了
而$_GET 跟$_POST都是要大寫的喔! PS:GET POST限定PHP4.1.0以後版本

阿有時候程式用GET傳 有時候用POST 甚至同樣東西我兩種傳法都有怎辦

這時候 就要開外掛了(誤)
$_REQUEST
這東西很懶 不管是GET 還是POST 他都收拉 所以我們會盡量習慣用這方式收

定義常數 define
有變數就會有常數拉 常數就是程式怎跑 他都不會改變的
就算你定義了兩個名稱一樣數值不一樣的常數 他還是以最開始記錄到的那個為主
不會改變
define(“名稱”,”值”);
define(“_MY_NAME”,”davidou”);
所以定義常數 對於大 程式可能比較有用 避免說程式後面出現bug 自己把自己的預設常數
給改掉了
define(“_MY_NAME”,”davidou”);
define(“_MY_NAME”,”bency”);
像這樣 你程式就算不小心寫到兩行 他還是一樣輸出的是davidou 而不會被改成bency
(變數如果這樣寫 就會被更改)
‘ ”
我們一般來說字串都是用” “來包含住的 但是如果我們要表現變數名稱 而非他的值
就得要用’ ‘來包 所以你有時候會看到”” 有會有 ‘ ‘的時候
阿但是一下” 一下’ 很討厭阿 看程式會看的很頭痛 會突然腦袋當機不知道輸出是啥

所以我們就用絕招 脫逸符號
卡片規則:在本符號後面的特殊字元 通通現出原形!
所以只要在特殊符號前面打上他就會失去功能 現出他的變數名稱在畫面上了

<?php
echo "$ok="搞定"";
?>
Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)