• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP中容易犯错的点

php 搞代码 4年前 (2022-01-22) 12次浏览 已收录 0个评论

本文主要和大家分享PHP中容易犯错的点,都是平常使用php的时候总结出来的,希望能帮助到大家。

1 引用的问题

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

2 检测变量是否设置

<?php$data = array();//$data['name']  = 0;//$data['name']  = null;$data['name'] = false;if (isset($data['name'])) {    var_dump('not set name');}<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark><pre>搞代gaodaima码

else { var_dump('already set name');}if (($data['name'])) { var_dump('data-name 存在');} else { var_dump('data-name 不存在');}if (array_key_exists('name', $data)) { var_dump('key name 存在于array中');} else { var_dump('key name 不存在于array中');}

三种值,三种判断变量是否存在的方法结果分别为:

3 直接使用函数返回的数据索引

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

如果你不使用 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('testKey', 'testValue');echo $config->getValue('testKey');    // 输出『testValue』

以上就是PHP中容易犯错的点的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP中容易犯错的点

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址