请教:php代码执行顺序?

有时候会看到看上去比较复杂的php语句,比如:$arr=array(1,2,2,3,4,5,6,7,8);var_dump(implode(array_reverse($... 有时候会看到看上去比较复杂的php语句,比如:
$arr = array(1,2,2,3,4,5,6,7,8);
var_dump(implode(array_reverse($arr)).array_shift($arr).implode(array_flip($arr)).'suffix');
请问,为什么里面的函数先执行,最后是var_dump,这个有什么依据和说法吗,有什么解释吗?
php编译器是如何认识里面的这个函数并先执行的呢?

请教,谢谢、
展开
 我来答
帐号已注销
2015-03-10 · TA获得超过268个赞
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:272万
展开全部
这个是运算符的优先级的问题。就像简单的加减法一样。
a=(123+456+(12*12)+(11*11+(12+23)))
他是先算括号里面的,然后括号里面又有括号。
追问
那只能理解说 函数用于接受参数的()的优先级是高于点号的。
请教:为什么这段代码输出结果不正常呢。

add((6+7), (9+7));
function add($a, $b){
var_dump('jackson'.var_dump( ($a + $b).'jackson' ));
追答
add((6+7), (9+7));
function add($a, $b){
    var_dump('jackson'.var_dump( ($a + $b).'jackson' ));
}

你的语法错了,少了一个‘}’符号。

执行的结果是:

string(9) "29jackson" string(7) "jackson"

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-10
展开全部
这个还真不好说!
php也是人创造出来的, 自然也是遵照人的基本思维不是!
计算机技术是和数学息息相关的!
数学上来说, 不正是先运算括号内,而且是最里面的括号优先吗?
如果都违反这个定律, 那括号岂不是失去了意义? 而且程序也没法正常运行起来不是?
追问
那只能理解说 函数用于接受参数的()的优先级是高于点号的。
请教:为什么这段代码输出结果不正常呢。

add((6+7), (9+7));
function add($a, $b){
var_dump('jackson'.var_dump( ($a + $b).'jackson' ));
追答
语法本身就错误!
理解优先级之前,请先理解php最基本的语法先!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式