永发信息网

【PHP】初始化是一定要用类的同名函数做构造函数吗?

答案:3  悬赏:60  手机版
解决时间 2021-04-05 16:59
我写了一段代码如下:
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中类的初始化有两种方式,一种是像你所说的同名函数做构造函数,另外一种则是定义__construct()(前面两个下划线_)做构造函数,这两者除了函数名称不一样外,其它没什么区别,都是用来初始化类的。但建议用后者,原因是如果使用了同名函数做构造函数,当类名发生改变,相应的构造函数名也要改变。而__construct被默认作为当前类的构造函数
全部回答
楼上正解 这种带下划线的函数php成为魔术方法 有很多种 值得研究~
你这个是兼容写法,如果按照最新写法,可以不用。 你只需要把初始化的那个函数的名字写成 php4是这样的 php5也可以这样,但是多了一种方法,就是写一个名叫__construct代码
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女生用什么颜色眉笔好看?
狗被车撞到了后退不动,但是没有伤是怎么回事
月光假想的作文精选
有首歌歌词有一句记忆中的一条线,这歌叫什么
爱情永不分离诗的句子,推荐几首比较有文采的
(二)少些模仿,多些创新(11分)刘根生①如
车里突然有浓重的汽油味什么原因?
马自达3昂克赛拉1.5l动力够吗
荆州市2016年北门中学小升初分数线是多少?
为什么我用顺子轰炸机炸别人自己却被炸了
dnf消暑果汁合成配方是什么 消暑果汁合成配方
怎样确定to后面使用动名词,还是直接的动词不
世界上又拿几个著名通讯社?说出三个即可
阿狸里面的哲理句子,求一段哲理,我只记得前
全民tv小夜直播id多少
推荐资讯
高空施工安全标语,高空作业标语
请问韩语你还回来么怎么写
经典伤感情话短句大全,何水无鱼?何山无石?
这是一种什么菇?有人说是海香菇,但海香菇是
已知:如图△ABC中,点D、E、F分别在三边上,
我看不惯女朋友花钱大手大脚,和她吵架分手了,
乘飞机去新加坡需注意什么?
下列情况中,成正立、放大虚像的是A.幻灯机屏
如何查看excel的工作表数量
1斤红枣干有几颗
肥腊肉怎么做不腻人
我们这里篮球场足球场进去玩要收费,可是有人
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?