这是在我的api中名为“handlejoin”的函数中使用的语句,它允许我的应用程序中的用户加入聊天。
$stmt = $this->pdo->prepare('INSERT INTO active_users (user_Id, device_token, nickname, secret_code, ip_address) VALUES (?, ?, ?, ?, ?)');
$stmt->execute(array($userId, $token, $name, $code, $_SERVER['REMOTE_ADDR']));
我想将$token
值传递给新文件。我想使用像这样的include语句来做到这一点。
<?php
include: 'api.php'
echo "$token";
?>
唯一的问题是handleJoin语句在一个文件(api.php)中,它有很多代码,而我还不确定如何理解$token
变量的当前变量范围足够成功将其值传递给新文件。有关变量定义等的include语句似乎有很多细微差别。有人可以帮我解析完整的api / php文件,以了解如何成功地将$token
变量的内容传递给另一个文件吗? / p>
来源:http://php.net/manual/en/function.include.php
以下是整个文件:https://github.com/tonycrencren/api-file/blob/master/api.php
handleJoin语句在第192行
修改:更多信息
我的应用使用推送通知。我想要传递的$ token变量存储设备令牌。我可以像这样在NSLog中回显设备令牌。
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSString* newToken = [deviceToken description];
newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"My token is: %@", newToken);
}
NSLog中的输出
调用join函数时,设备令牌也会发布到数据库。请注意,它是相同的设备令牌。
testfile.php
<?php
//tells you whats going on in the browser at at what line if there needs to be an improvement to the structure of the function
error_reporting(E_ALL);
ini_set("display_errors", 1);
function token()
{
include 'file://localhost/Users/user/Desktop/PushChatServer/api/api.php';
echo "A $token";
return $token;
}
token();
echo "$token";
?>
问题:如何使用include语句创建一个新文件并使用api.php成功回显新文件中的$token
变量?我想在我的Web浏览器中打开新文件时能够看到设备令牌字符串。现在它是一个空白的网页。我得到预感,新文件根本没有得到变量。
我也预感到,即使它获得$token
值,我也必须同时运行该应用程序,以便调用该方法并同时保持刷新新网页以查看令牌值。正确的吗?
答案 0 :(得分:1)
由于包含文件的执行就像它是调用者文件的一部分一样,只需在api.php文件中创建一个全局变量并使其设置为sute,例如,在api.php中调用token()
函数。
api.php
//declare global $token variable
$token='';
//function that generates the token
function generate_token() {
...
}
//use one of the following methods
//code to execute the generate_token() function if generate_token() returns the token
$token=generate_token();
//code to execute the generate_token() function if generate_token() sets the global $token within the function's body
//put a declaration within generate_token() in order to set $token global variable from the function: global $token;
generate_token();
您可以将testfile.php与上面的代码一起使用。
但是,我不会这样做。我将在api.php中创建generate_token()函数,该函数返回令牌。在测试php中,你包括api.php并调用函数:
api2.php:
//function that generates the token
function generate_token() {
...
return ...; //returns the token
}
//end api2.php
test.php的:
include api2.php;
echo generate_token();