我使用全局变量时遇到一些错误.我在全局范围内定义了一个$ var并尝试在函数中使用它但在那里无法访问它.请参阅以下代码以获得更好的解释:
文件a.php:
<?php
$tmp = "testing";
function testFunction(){
global $tmp;
echo($tmp);
}
Run Code Online (Sandbox Code Playgroud)
那么关于如何调用这个函数.
文件b.php:
<?php
include 'a.php'
class testClass{
public function testFunctionCall(){
testFunction();
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下命令调用上述'b.php':
$method = new ReflectionMethod($this, $method);
$method->invoke();
Run Code Online (Sandbox Code Playgroud)
现在所需的输出是'测试'但接收的输出是NULL.
在此先感谢您的帮助.
我正在调用一个python函数来从我的C++代码中计算"t-test".函数调用如下:
#include <iostream>
#include "Python.h"
#include "/usr/local/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h"
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
int main(int argc, char** argv)
{
Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append(\"PATH_TO_MOD\")");
PyObject *pName = PyString_FromString("tmpPyth");
PyObject *pModule = PyImport_Import(pName);
double arr[] ={9.74219, 10.2226, 8.7469, 8.69791, 9.96442, 9.96472, 9.37913, 9.75004};
double arr1[] ={9.74219, 10.2226, 8.7469, 8.69791, 9.96442, 9.96472, 9.37913, 9.75004};
PyObject *lst = PyList_New(8);
PyObject *lst1 = PyList_New(8);
// if (!lst)
// return NULL;
for (int i = 0; i < 8; i++) {
PyObject *num = PyFloat_FromDouble(arr[i]);
PyObject *num1 = PyFloat_FromDouble(arr1[i]); …Run Code Online (Sandbox Code Playgroud) 我正在尝试从我的 cpp 文件调用 python 模块函数。
我打的电话如下:
#include <iostream>
#include "Python.h"
int
main(int argc, char** argv)
{
Py_Initialize();
PyObject *pName = PyString_FromString("tmpPyth");
PyObject *pModule = PyImport_Import(pName);
std::cout<< "Works fine till here";
PyObject *pDict = PyModule_GetDict(pModule);
if (pModule != NULL) {
PyObject *pFunc = PyObject_GetAttrString(pDict, "pyFunc");
if(pFunc != NULL){
PyObject_CallObject(pFunc, NULL);
}
}
else
std::cout << "Python Module not found";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的python模块定义如下:
import numpy
import scipy
import matplotlib
from scipy import stats
def blah():
baseline = [9.74219, 10.2226, 8.7469, 8.69791, …Run Code Online (Sandbox Code Playgroud)