2009-09-23 5 views
4
<?php 

$a = 'ec'; 
$b = 'ho'; 
$c = $a.$b; 
echo('Huh?'); 
$c('Hello, PHP!'); 

?> 

PHP에서 함수 이름 연결이 작동하지 않는 이유는 무엇입니까?

Huh? 
Fatal error: Call to undefined function echo() in <...>/php.php on line 11 

를 얻을?

+0

당신은 라인 (11)이 모든 것을 가지고 있지 않습니다? 에코하려면 $ c를 어디에서 할당하고 있습니까? – lod3n

+0

죄송합니다. 원본 코드에서 약간 수정하고 다시 실행하지 않았습니다. – qwzybug

답변

17

echo은 기술적으로 PHP에서는 작동하지 않습니다. 그것은 "언어 구조"입니다.

echo('Huh?') 당신은 대신이 작업을 수행 할 수 echo 'Huh?'

에 대한 대체 구문입니다

function my_echo($s) { 
    echo $s; 
} 

$a = "my_echo"; 
$a("Huh?"); 
+2

정밀도를 추가하는 것 : echo는 "언어 구조"이며 변수 페이지를 사용하여 호출 할 수 없습니다. 매뉴얼 페이지에 나와 있습니다. http://php.net/echo –

+0

필자가 작성하는 동안 함수 랩을 추가했습니다. 내 대답은 함수 랩을 언급했다. +1 – MitMaro

+2

저는 2001 년 이후로 말하지 않은 것을 말할 것입니다 : PHP에 관해 새로운 것을 가르쳐 주신데 대해 감사드립니다. – qwzybug

3

에코가 아닌 언어 구조 기능입니다. 당신이하려는 것은 실제 기능으로 작동합니다. 이 같은 것이 효과가 있습니다.

<?php 
function myecho($src) { echo $src; } 
$a = 'myec'; 
$b = 'ho'; 
$c = $a.$b; 
$c('This is a test'); 
?> 
1

echoprint, die, require, require_once, include, include_once 및 기타 (내가 몇 가지를 놓친 확신) 기능을하지만 언어 구조되지 않습니다. 괄호 안에 echo()이라고 쓰는 것은 구문 설탕입니다.

당신은 당신의 위가 같은 함수로 포장해야합니다을 사용하려면 :

<?php 
function echoMyEcho($str){ 
    echo $str; 
} 

$c = "echoMyEcho"; 
$c("Let go of my eggo"); 
관련 문제