有疑問就直接敲代碼來驗證答案:
1、兩個函數都存在的情況下
<?php
class A{
var $str = "construct";
function __construct(){
$this->str = "construct";
}
function A(){
$this->str = "A";
}
}
$a = new A();
echo $a->str;
?>
運行結果輸出是construct
這裏如果__construct(){}不設置值時,其輸出結果也爲空,並不會是A。
2、如果魔法函數不存在時
<?php
class A{
var $str = "construct";
function A(){
$this->str = "A";
}
}
$a = new A();
echo $a->str;
?>
輸出結果爲A,
這說明魔法函數優先級要大於同名函數,兩者同時存在時只調用魔法構造函數。