Heim  >  Artikel  >  Backend-Entwicklung  >  php一个类的怪异问题??

php一个类的怪异问题??

WBOY
WBOYOriginal
2016-06-06 20:16:09913Durchsuche

php定义一个类。为啥下面第一种情况就没问题,第二种情况就报错??

<code><?php class xyz{
  private static $abc=array(???????????????????????);
}
//正常

class xyz{
  $xxx=array(???????????????????????);
  private static $abc=$xxx;
}
//500 错误</code></code>

回复内容:

php定义一个类。为啥下面第一种情况就没问题,第二种情况就报错??

<code><?php class xyz{
  private static $abc=array(???????????????????????);
}
//正常

class xyz{
  $xxx=array(???????????????????????);
  private static $abc=$xxx;
}
//500 错误</code></code>

<code>class a {
    $x = array();//这种写法虽然支持,但是也不推荐了,应该写成 public $x = array();
    private static $y = $x;//这是很明显的语法错误,第一此处不能用变量,第二访问属性应该是$this->x
}</code>

类里面的静态变量和常量声明都不能用变量,属于语法错误。我想是因为在对象没有实例的时候变量都还没有被分配,所以静态变量和常量都无法获得有效的值。
建议:
1- 修改php.ini,把错误信息显示出来,这样你就不会看到干巴巴的500错误了,而是PHP提示的错误原因,这样有助于解决问题
2- 使用比较专业的PHP开发IDE,如PHPStorm或者ZendStudio(我在用这个),这种浅显的语法错误会被IDE直接标红。

建议你好好学学PHP语法,写个不合语法的错误代码出来,出现什么怪异的问题一点都不怪异。

类里面包含的东西:static的是关于类的,即静态方法和属性;其它的是属于对象的(类的实例)方法和属性

静态的当然不能直接调用属于对象的东西(对象都还没存在呢!!!)

这也算面向对象的基本概念了吧...

基础没有学好直接写代码,只能说虐待了自己的小命

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