> 백엔드 개발 > PHP 튜토리얼 > php的一道面试题

php的一道面试题

WBOY
풀어 주다: 2016-06-06 20:17:45
원래의
1430명이 탐색했습니다.

<code>function myfunc($a){
    echo $a + 10;
}

$val = 10;
echo "myfunc($val)=".myfunc($val); //20myfunc(10)
</code>
로그인 후 복사
로그인 후 복사

不是应该输出myfunc(10)=20吗?

回复内容:

<code>function myfunc($a){
    echo $a + 10;
}

$val = 10;
echo "myfunc($val)=".myfunc($val); //20myfunc(10)
</code>
로그인 후 복사
로그인 후 복사

不是应该输出myfunc(10)=20吗?

经过测试:
LZ这道面试题主要是考察执行顺序,具体解答过程如下:
a.echo "myfunc($val)=";
单独这样的时候,输出结果为:myfunc(10)= ,说明双引号中只不解析函数,只解析变量
b.echo "myfunc($val)=".myfunc($val);
拼接上后面的函数后,结果为:20myfunc(10)= ,说明后面的函数先执行输出了20。然后执行了echo语句。

总结:第一步执行后面的函数输出了20,然后在执行echo语句。故结果为:20myfunc(10)=

笑话… 你的 myfunc 的输出是 echo 又不是 return .... 不要异想天开好么… 函数先执行然后再是外部的 echo 执行啊……

函数myfunc里面直接输出里结果,不是return

你应该是 return $a + 10; 吧

在函数里 echo 是什么鬼

为啥=没了 我感觉应该是 20mytest(10)=,前面那个20应该是后面那段的输出。

echo 的时候是先把 echo 后面的值计算出来之后才把最终结果输出的
计算的过程执行了 myfunc 这个函数,而 myfunc 里面有一个 echo 了所以就先输出了 20
另外,函数里面要有 return 才会返回值

<code>function myfunc($a){
    return $a + 10;
}

$val = 10;
echo "myfunc($val)=".myfunc($val);</code>
로그인 후 복사

<code class="php">function myfunc($a){
    echo $a + 10;
    echo "\n";
}

$val = 10;
echo "myfunc($val)=".myfunc($val); //20myfunc(10)</code>
로그인 후 복사

这样来看,就明确多了。

我也算是看明白了, 你在函数里面直接echo 。好好看清楚代码,你就明白了

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿