由于某些原因,我的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>
答案 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);