Rumah > pembangunan bahagian belakang > tutorial php > php一个类的怪异问题??

php一个类的怪异问题??

WBOY
Lepaskan: 2016-06-06 20:16:09
asal
971 orang telah melayarinya

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

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

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

回复内容:

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

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

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

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

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

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

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

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

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

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

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan