首頁 > 後端開發 > php教程 > PHP中容易犯錯的點

PHP中容易犯錯的點

小云云
發布: 2023-03-22 16:56:01
原創
1253 人瀏覽過

本文主要跟大家分享PHP中容易犯錯的點,都是平常使用php的時候總結出來的,希望能幫助大家。

1  所引用的問題

<?php$arr = range(1,3);foreach ($arr as &$v){
}


print_r($arr);foreach ($arr as $v){
    print_r($arr);

}
登入後複製

PHP中容易犯錯的點

#2 偵測變數是否設定

<?php$data = array();//$data[&#39;name&#39;]  = 0;//$data[&#39;name&#39;]  = null;$data[&#39;name&#39;] = false;if (isset($data[&#39;name&#39;])) {
    var_dump(&#39;not set name&#39;);
} else {
    var_dump(&#39;already set name&#39;);

}if (($data[&#39;name&#39;])) {
    var_dump(&#39;data-name 存在&#39;);
} else {
    var_dump(&#39;data-name 不存在&#39;);

}if (array_key_exists(&#39;name&#39;, $data)) {
    var_dump(&#39;key name 存在于array中&#39;);
} else {
    var_dump(&#39;key name 不存在于array中&#39;);

}
登入後複製

三種值,三種判斷變數是否存在的方法結果分別為:
PHP中容易犯錯的點
PHP中容易犯錯的點

PHP中容易犯錯的點

#3 直接使用函數傳回的資料索引

<?phpclass Config{
    private $values = [];    public function __construct() {
        // 使用数组对象而不是数组
        // $this->values = new ArrayObject();
    }    public function &getValues() {
        return $this->values;
    }
}$config = new Config();$config->getValues()[&#39;test&#39;] = &#39;test&#39;;echo $config->getValues()[&#39;test&#39;];
登入後複製

如果你不使用object 來儲存values ,或不使用引用將函數的結果變成values數組的引用,那麼可能會錯

Notice: Undefined index: test in /Users/leon/Documents/workspace/test/php7.php on line 20
登入後複製

這樣會破壞物件的封裝性,最好這樣寫

class Config{
    private $values = [];    public function setValue($key, $value) {
        $this->values[$key] = $value;
    }    public function getValue($key) {
        return $this->values[$key];
    }
}$config = new Config();$config->setValue(&#39;testKey&#39;, &#39;testValue&#39;);echo $config->getValue(&#39;testKey&#39;);    // 输出『testValue』
登入後複製

以上是PHP中容易犯錯的點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板