将一个函数数组用于其他函数,而无需像javascript一样返回数组
此代码已将js转换为php,但在js中,相同的代码工作正常,但在php中返回错误 未定义的变量:const
$const = array();
$array = array(1,2,3,4,5,6,7,8,9);
readdata();
for ($i = 0 ; $i < count($array) ; $i++) {
$const[5]=$i;
getall($array);
}
function dependent($array,$tances) {
echo $index5 = $const[5];
echo $index4 = $const[4];
$index3 = $const[3];
// $tances and $array for other purpose in this function
}
function getbid($array) {
$mid = 1.0;
dependent($array,$mid);
}
function getall($array) {
getbid($array);
}
function readdata() {
$latd=40;
$latm=11;
$lond=44;
$lonm=30;
$alt=0;
$tz=5;
$const[0]=$latd;
$const[1]=$latm;
$const[2]=$lond;
$const[3]=$lonm;
$const[4]=$tz;
}
我将js库转换为php最大js函数,请使用这些数组在上一个函数中声明。所以我想在PHP中使用相同的代码
我将此js转换为php 在js中,所有函数,数组和变量都能正常工作
var sconst= new Array();
var array= new Array(1,2);
readdata();
for (var i = 0 ; i < array.length ; i++) {
sconst[5]=i;
getall(array);
}
function dependent(array,mid) {
index5 = sconst[5];
index4 = sconst[4];
index3 = sconst[3];
alert(index5+' '+index4+' '+index3)
// $tances and $array for other purpose in this function
}
function getbid(array) {
var mid = 1.0;
dependent(array,mid);
}
function getall(array) {
getbid(array);
}
function readdata() {
var latd=40;
var latm=11;
var lond=44;
var lonm=30;
var alt=0;
var tz=5;
sconst[0]=latd;
sconst[1]=latm;
sconst[2]=lond;
sconst[3]=lonm;
sconst[4]=tz;
}
答案 0 :(得分:1)
您的错误是因为$const
函数的范围内不存在dependent
。它在readdata
函数中也不存在,但是由于您没有尝试从中读取值,因此您不会在其中看到错误。您可以通过将global $const;
添加到dependent
和readdata
函数中来最轻松地解决此问题,例如
function dependent($array,$tances) {
global $const;
echo $index5 = $const[5] . "\n";
echo $index4 = $const[4] . "\n";
$index3 = $const[3];
// $tances and $array for other purpose in this function
}
function readdata() {
global $const;
$latd=40;
$latm=11;
$lond=44;
$lonm=30;
$alt=0;
$tz=5;
$const[0]=$latd;
$const[1]=$latm;
$const[2]=$lond;
$const[3]=$lonm;
$const[4]=$tz;
}
或者,您需要修改函数调用以将$const
作为参数传递(并作为readdata
的值返回),即
$const=array();
$array=array(1,2,3,4,5,6,7,8,9);
$const = readdata();
for ($i = 0 ; $i < count($array) ; $i++) {
$const[5]=$i;
getall($const, $array);
}
function dependent($const, $array, $tances) {
echo $index5 = $const[5] . "\n";
echo $index4 = $const[4] . "\n";
$index3 = $const[3];
// $tances and $array for other purpose in this function
}
function getbid($const, $array) {
$mid = 1.0;
dependent($const, $array, $mid);
}
function getall($const, $array) {
getbid($const, $array);
}
function readdata() {
$latd=40;
$latm=11;
$lond=44;
$lonm=30;
$alt=0;
$tz=5;
$const[0]=$latd;
$const[1]=$latm;
$const[2]=$lond;
$const[3]=$lonm;
$const[4]=$tz;
return $const;
}