在PHP中使用一个功能数组来其他功能

时间:2018-10-30 03:26:29

标签: javascript php

将一个函数数组用于其他函数,而无需像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;  
}

1 个答案:

答案 0 :(得分:1)

您的错误是因为$const函数的范围内不存在dependent。它在readdata函数中也不存在,但是由于您没有尝试从中读取值,因此您不会在其中看到错误。您可以通过将global $const;添加到dependentreaddata函数中来最轻松地解决此问题,例如

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;
}