在单引号中包含一个函数

时间:2009-11-17 11:17:40

标签: php function urlencode

我试图找出为什么我不能在其中包含一个函数。我试图让它$client使它进入请求字符串。 http://test.com/next.xml?file=$client&test=againtest

$client被定义为我数据库中的文本。

function update($pro){
    $request = 'http://test.com/next.xml?file='.$client'&'.'test='.urlencode($pro);;
    $postargs = 'status='.urlencode($pro);
    return $this->process($request,$postargs); 
}

有某种方法可以做到这一点吗?这不会给我任何PHP错误,但它不能正常工作。如果我删除'.$client.'并将其替换为纯文本(例如text),则可以正常使用,但当我将其作为函数包含时,它将无效。

2 个答案:

答案 0 :(得分:4)

看起来$client未定义。

如果该变量是在函数范围之外定义的,除非将其定义为全局变量,否则它将不可用

global $client

不鼓励这样做,更好的方法是将$client作为参数传递给函数

有关可变范围http://php.net/manual/en/language.variables.scope.php

的更多信息,请查看此处

答案 1 :(得分:2)

您应该像这样更改代码,忘记字符串连接:

$request = 'http://test.com/next.xml?file=' . $client . '&test=' . urlencode($pro);

在点和字符串之间使用空格 - 只需为此制定规则。你会看到你所有的错别字!