Re: [請益] PHP變數宣告
: 因為我之前是寫Java的
Java 算是強型別的程式語言 (strong type)
而 PHP 則是弱型別 (weak type)
二者不太能互相比較
: 但是在PHP內
: 變成是要直接給變數然後給值初始化
: 如果沒有給值就等於null
: $x; //這樣有寫跟沒寫一樣,值也是null
: $x = 10; //正常
寫個程式做檢查,這邊先把 error_reporting 打開:
<?php
error_reporting(E_ALL);
var_dump($x);
執行後會出現訊息:
PHP Notice: Undefined variable: x in /home/johnroyer/tmp/qwe.php on line 5
NULL
所以其實 PHP 是會檢查變數是否有被初始化的
只是即使沒有被初始化也是可以照常拿來使用 .... 然後可能就踩到雷 XD
例如拿沒有初始化的變數去其他函式使用:
$list = [1, 2, 3];
array_merge($list, $undefined);
語法上來講沒有任何問題
但是執行的時候就會有 runtime error :
PHP Warning: array_merge(): Argument #2 is not an array
以個人經驗
如果希望程式可以避開 runtime error 的話
建議會拿來做判斷、運算的變數最好都先初始化
並且指定正確的資料型態
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.229.31
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1510720665.A.045.html
※ 編輯: JohnRoyer (211.72.229.31), 11/15/2017 12:46:11
推
11/15 15:53,
7年前
, 1F
11/15 15:53, 1F
→
11/15 15:53,
7年前
, 2F
11/15 15:53, 2F
→
11/15 15:53,
7年前
, 3F
11/15 15:53, 3F
→
11/15 15:57,
7年前
, 4F
11/15 15:57, 4F
→
11/15 15:57,
7年前
, 5F
11/15 15:57, 5F
→
11/15 15:57,
7年前
, 6F
11/15 15:57, 6F
→
11/15 15:57,
7年前
, 7F
11/15 15:57, 7F
→
11/15 15:57,
7年前
, 8F
11/15 15:57, 8F
→
11/15 16:03,
7年前
, 9F
11/15 16:03, 9F
→
11/15 16:03,
7年前
, 10F
11/15 16:03, 10F
推
11/15 18:43,
7年前
, 11F
11/15 18:43, 11F
→
11/15 18:43,
7年前
, 12F
11/15 18:43, 12F
→
11/15 18:43,
7年前
, 13F
11/15 18:43, 13F
→
11/15 18:43,
7年前
, 14F
11/15 18:43, 14F
→
11/15 18:43,
7年前
, 15F
11/15 18:43, 15F
→
11/15 18:43,
7年前
, 16F
11/15 18:43, 16F
→
11/15 18:43,
7年前
, 17F
11/15 18:43, 17F
→
11/15 18:43,
7年前
, 18F
11/15 18:43, 18F
→
11/15 21:36,
7年前
, 19F
11/15 21:36, 19F
→
11/15 21:37,
7年前
, 20F
11/15 21:37, 20F
推
11/15 21:53,
7年前
, 21F
11/15 21:53, 21F
→
11/15 21:53,
7年前
, 22F
11/15 21:53, 22F
→
11/15 21:53,
7年前
, 23F
11/15 21:53, 23F
→
11/16 01:51,
7年前
, 24F
11/16 01:51, 24F
→
11/16 01:52,
7年前
, 25F
11/16 01:52, 25F
→
11/16 01:53,
7年前
, 26F
11/16 01:53, 26F
→
11/16 01:55,
7年前
, 27F
11/16 01:55, 27F
→
11/16 01:59,
7年前
, 28F
11/16 01:59, 28F
→
11/16 02:02,
7年前
, 29F
11/16 02:02, 29F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章