gpt4 book ai didi

php - 如何访问函数内的变量?

转载 作者:行者123 更新时间:2023-12-02 04:10:58 28 4
gpt4 key购买 nike

我正在编写一个 php 文件,其中包含我想要执行的任务的函数。其中一些功能需要使用mysql数据库。我创建了一个单独的 db_connections.php 文件,并使用 require_once 将其添加到函数文件中。

我可以访问在此文件中创建的 PDO 对象,但无法在函数内访问此变量。有没有办法访问函数内部的变量?

<?php

require_once ("class.phpmailer.php");
require_once ("error_option.php");
require_once ("db_connection.php"); //The PDO object has been created here

function processLoginUser($email, $password) {
//I cant seem to access the pdo object inside functions, but it is accessible outside functions
$email = trim($email);
$password = trim($password);
$checkUserQuery = $dataObject->prepare("CALL sp_CheckLogin()");
$checkUserQuery->bindParam();
}

最佳答案

调用函数时可以传递连接对象:

processLoginUser($email, $password, $dataObject);

然后,当您将其添加到参数列表时,它将可以在函数范围内访问:

function processLoginUser($email, $password, $dataObject) {
$email = trim($email);
$password = trim($password);
$checkUserQuery = $dataObject->prepare("CALL sp_CheckLogin()");
$checkUserQuery->bindParam()
}

或者您可以使用闭包(>= PHP 5.3),假设在定义 $dataObject 之后调用闭包:

$processLoginUser = function($email, $password) use ($dataObject) {
$email = trim($email);
$password = trim($password);
$checkUserQuery = $dataObject->prepare("CALL sp_CheckLogin()");
$checkUserQuery->bindParam()
};
$processLoginUser($email, $password); // call the closure as you would a regular function.

或者,您也可以将 $dataObject 变量设为全局:

function processLoginUser($email, $password) {
global $dataObject;

$email = trim($email);
$password = trim($password);
$checkUserQuery = $dataObject->prepare("CALL sp_CheckLogin()");
$checkUserQuery->bindParam()
}

这纯粹是基于意见的,但对于您的情况,我会坚持第一个选项:只需将其作为参数传递给函数。

关于php - 如何访问函数内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36753351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com