PHP函数调用返回致命错误

时间:2012-03-02 00:35:17

标签: php

由于某些原因,我的PHP函数调用<? r(); ?>返回致命错误。有什么帮助吗?

<?php
//$r is previously assigned
function r() {
    echo ( $r );
};
?>

<html>
    <head>
        <link type="text/css" rel="stylesheet" href="<? r(); ?>rs/css/master.css">
    </head>

2 个答案:

答案 0 :(得分:4)

定义一个函数会改变范围,其中$r不在该函数内。尝试以这种方式发送$r函数:

<?php
function r($r) {
    echo ( $r );
}
?>
<link type="text/css" rel="stylesheet" href="<?php r($r); ?>rs/css/master.css">

或在函数开头定义global $r;(不是首选)。

此外,您不应使用<?打开PHP。如果所有函数都回显$r的值,那么执行此操作会更有意义:

<link type="text/css" rel="stylesheet" href="<?php echo ( $r ); ?>rs/css/master.css">

答案 1 :(得分:1)

如果要从对象内部引用全局对象,则需要将其显式声明为global

function r() {
    global $r;
    echo ( $r );
}

但总的来说,以这种方式引用全局变量是坏样式。您应该考虑将先决条件作为函数参数传递:

function r($r) {
     echo ( $r );
}

...

r($r);