我写了一段代码如下:
class table{
public $x;
function weishu(){
$this->x=9;
}
function print_table(){
for($i=1;$i<=$this->x;$i++){
for($j=1;$j<=$i;$j++){
echo $j."*".$i." ";
}
echo "
";
}
}
}
$table1=new table;
$table1->print_table();
在初始化$x是我用的是function weishu(),结果就没用,改成function table()就可以了,为甚么?
【PHP】初始化是一定要用类的同名函数做构造函数吗?
答案:3 悬赏:60 手机版
解决时间 2021-04-05 16:59
- 提问者网友:捧腹剧
- 2021-04-04 16:51
最佳答案
- 五星知识达人网友:迟山
- 2021-04-04 18:17
PHP中类的初始化有两种方式,一种是像你所说的同名函数做构造函数,另外一种则是定义__construct()(前面两个下划线_)做构造函数,这两者除了函数名称不一样外,其它没什么区别,都是用来初始化类的。但建议用后者,原因是如果使用了同名函数做构造函数,当类名发生改变,相应的构造函数名也要改变。而__construct被默认作为当前类的构造函数
全部回答
- 1楼网友:旧脸谱
- 2021-04-04 20:18
楼上正解 这种带下划线的函数php成为魔术方法 有很多种 值得研究~
- 2楼网友:woshuo
- 2021-04-04 19:40
你这个是兼容写法,如果按照最新写法,可以不用。
你只需要把初始化的那个函数的名字写成
php4是这样的
php5也可以这样,但是多了一种方法,就是写一个名叫__construct代码
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯