【浅析php静态方法与非静态方法的用法区别】教程文章相关的互联网学习教程文章

类的静态方法在继承中的使用,不大明白,self和this怎么转换?

db=new B(); } public function find(){ return $this->db->b1(); }}class B //数据库{ public function b1(){ return true; } public function b2(){ return false; }}//**********分隔符***********class C extends A //第三方类{ static function test(){ return self::find(); }}//当前文件if(C::test()){ echo 'OK'; }?> 这个文件执行是错的, 只能修改核心和当前文件部分, 我想要当前文件部分那样简短的写...

php子类如何访问父类的静态方法

1.子类内部访问父类静态成员属性或方法,使用 parent::method()/self::method() 注意:$this->staticProperty(父类的静态属性不可以通过$this(子类实例)来访问,会有这样报错:PHP Strict Standards: Accessing static property Person::$country as non static in,PHP Notice: Undefined property: ) 2.子类外部 1.子类名::method() 2.子类实例->method() (静态方法也可以通过普通对象的方式访问) 注意:子类实例->staticProperty...

静态方法调用等价于new对象吗

看别人写的一个例子,似乎使用了静态调用后,就等价于new了一个对象了,不过从道理上怎么也没有理解 这到底是为什么呢 回复讨论(解决方案) getDB里面实现了new 实例,返回的就是一个实例,所以就能用query() 静态方法是常驻内存的,调用要快一点,但是里面不能用 $this ,因为只有 new 实例以后才能用 $this DB::getDB() 返回了一个 DB 的实例 你看看 getDB 方法的定义就清楚了 DB::getDB() 等价 $db = ...

PHP静态方法和非静态方法的使用场景

思考案例 静态成员 类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态方法不能访问非静态的成员.因为静态成员存在于内存,所以非静态方法可以直接访问类中静态的成员. 非成静态员 所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问..非静态成员的生存期决定于该对象的生存期...

为什么静态方法不能操作静态变量?该怎么处理

为什么静态方法不能操作静态变量?为什么静态方法不能操作静态变量?解释下哈。。------解决方案--------------------静态方法在编译期间就已定义,而操作非静态变量需要一个对象。而这个对象是在运行时才产生的。大概来说,非静态方法可以操作静态方法和变量。而静态方法不能操作非静态方法和变量。(不过,实际上 php中可以违规的静态调用非静态方法)http://cn.php.com/manual/zh/language.oop5.static.php ------解决方案-------...

"用:方式调用一个非静态方法会导致一个E_STRICT级别的异常。"真的吗

"用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。"真的吗?class mycls{ function func() { echo "none static"; }}mycls::func();?>这里没有静态方法也可以运行啊,没出错啊------解决方案--------------------前面加上 error_reporting(2048); 就看见错误了还不看见的话, 再 ini_set('display_errors',true); ------解决方案--------------------这是PHP一直遗留的一个问题。你之所以没有看到错误提示,...

敢问各位大侠,php连接mysql的时候应该使用静态方法还是非静态方法?解决方法

敢问各位大侠,php连接mysql的时候应该使用静态方法还是非静态方法?哪个比较好一些,多谢各位了------解决方案--------------------都可以吧。 ------解决方案-------------------- 应该使用动态方法,理由如下:1、静态方法只能访问静态属性,会给其他方法带来不便2、在你的应用中可能会使用到多个数据库连接,使用动态方法时,只需再实例化一个对象3、在绝大多数应用中,数据库操作并不是单独存在的。一般是与业务逻辑一起封装成...

php类中的静态方法不能继承别的类中的public修饰的属性该怎么解决

php类中的静态方法不能继承别的类中的public修饰的属性该如何解决php类中的静态方法不能继承别的类中的public修饰的属性该如何解决?如par.class.php和st.class.php代码如下:par.class.php代码:PHP codeclass par{ public $aa; public function __contruct(){ $this->aa=123456 }}st.class.php代码:PHP codeclass st extends par{ static function bb{ echo $this->aa;//这样不可以访问,改如何解决呢 } }------解决方案-----------...

php的DB种使用静态方法有什么好处

php的DB类使用静态方法有什么好处?RT------解决方案-------------------- 不用实例化类。可以用 类名::静态方法名 进行调用。

php的静态方法调用有关问题,求大牛解答

php的静态方法调用问题,求大牛解答class Cat { } class Hypnotic_Cat extends Cat { // Constructorfunction Hypnotic_Cat( ) {} // This function must be called staticallypublic static function hypnotize( ) {echo ("The cat was hypnotized.");//return;} } // Hypnotize all cats //Hypnotic_Cat::hypnotize( ); $hypnotic_cat = new Hypnotic_Cat( ); // Does nothing $hypnotic_cat->hypnotize( ); ?>为什么这个用->来调...

种里include一个数组,在静态方法里无法使用吗

类里include一个数组,在静态方法里无法使用吗本帖最后由 liujianliang 于 2013-06-30 07:50:26 编辑类里include一个php文件包含几个变量,在静态方法里无法使用吗分享到:------解决方案--------------------看看你的代码

php静态方法调用非静态步骤不可取

php静态方法调用非静态方法不可取那天对这个主题比较感兴趣,于是就查了相关资料来记叙一下。不过,不知道自己写的到底有没有疏漏,所以,发到这里来给大家当靶子。如果您发现有什么叙述不正确的或不合理的,尽情拍砖――当然接受西红柿和鸡蛋。真理,只存在于辩论中。 --------------------------------------------- php中非静态方法的静态调用 参考资料: 1 Static method vs Non Static method? http://bytes.com/topic/php/a...

php函数、类跟对象以及类的封装、继承、类的静态方法、静态属性【代码】

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性 1、函数 php内置函数可以直接使用,如果没有安装php扩展即可 自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数值 echo ‘’; var_dump($var); } 2、类(class)和对象( new Obj) <?php //定义一个人的类,现在还不是对象 class Person{ //私有属性 private $eye = 大...

静态方法调用等价于new对象吗解决方法【图】

静态方法调用等价于new对象吗看别人写的一个例子,似乎使用了静态调用后,就等价于new了一个对象了,不过从道理上怎么也没有理解这到底是为什么呢------解决思路----------------------getDB里面实现了new 实例,返回的就是一个实例,所以就能用query()静态方法是常驻内存的,调用要快一点,但是里面不能用 $this ,因为只有 new 实例以后才能用 $this------解决思路----------------------DB::getDB() 返回了一个 DB 的实例你看看 ge...

PHP类中动态方法和静态方法调用写法的不解,希望版主大大指导

PHP类中动态方法和静态方法调用写法的疑惑,希望版主大大指导//error_reporting(0);class A{ public $db='OK'; private static $_instance; public static function getInstance() { if(!(self::$_instance instanceof self)){ self::$_instance = new self; } return self::$_instance; } //维持find方法中this指针的写法不变 public function find() { echo $this->db; }}class B extends A{ static function ex() { s...

静态方法 - 相关标签