Heim  >  Artikel  >  Backend-Entwicklung  >  php 给类变量赋值问题

php 给类变量赋值问题

WBOY
WBOYOriginal
2016-06-20 09:37:071657Durchsuche

private $pagebarnum=10;$this->pagebarnum  = $array['page_name'];$this->set('pagebarnum ',$array['page_name']);/**     * 设定类中指定变量名的值,如果改变量不属于这个类,将throw一个exception     * @param unknown $var     * @param unknown $value     */    function set($var,$value){        if(in_array($var, get_object_vars($this))){            $this->$var = $value;        }else{            $this->error(__FUNCTION__,$var." does not belong to PB_Page!");        }    }

$this->pagebarnum  = $array['page_name'];和$this->set('pagebarnum ',$array['page_name']); 赋值有什么区别,明明我已经在类中定义$pagebarnum,我用set去赋值还有这个必要吗?


回复讨论(解决方案)

变量初始化和调整当然有必要,假设你一个页面需要的参数是10,一个页面的参数是5,你是做两个类吗?

变量初始化和调整当然有必要,假设你一个页面需要的参数是10,一个页面的参数是5,你是做两个类吗?


实例化一个类传参进去能实现,但是没搞懂的是直接用$this->pagebarnum  = $array['page_name'];和set方法中先检查变量存不存在有什么区别?pagebarnum  在我创建类的时候已经定义在去检查有什么含义。

$this->pagebarnum  = $array['page_name'];
$this->set('pagebarnum',$array['page_name']);
的区别在于:后者不会对 不存在的属性 pagebarnum 赋值,而前者会对不存在的属性 pagebarnum 创建一个公有的 pagebarnum 属性

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn