PHP数组与js数组比较
在js创建数组
两种方式
1: var arr = new Array(1,2,3,4);
2: var arr = [1,2,3];
在PHP中创建数组
$arr = array(1,2,3);
print_r($arr);
在js中,数组的索引永远是从0开始逐一递增,
中间没有空档.
但是在PHP中, 数组的索引是非常灵活的.
可以是数字,也可以是字符串,
如果索引部分指定了数字索引,
又有某个单元没有指定索引,
则取该单元之前曾经出现的最大的数字索引值,
然后+1,作为其键值
$arr = array(10=>'赵',13=>'钱','孙',99=>'李','name'=>'张三丰','dsafdsafdsaf'=>'来了');
print_r($arr);
在PHP中,如何引用数组的单元值
关键靠索引,
而索引又有"数字","字符串"
如果是数字索引
echo $arr[10];
如果是字符串索引,必须把索引用''包起来
define('name','dsafdsafdsaf');
echo $arr[name];
echo $arr['name'];
关联数组与索引数组
索引既可能是纯数字,也可能是纯字符串,也有可能是字符串+数字混合
如果索引是纯数字,就叫 "索引数组"
否则就叫 "关联数字"
PHP函数
函数的执行权: 从调用函数开始, 语句的执行权进入到函数内部.
函数什么时间交出执行权: 当函数结束的时候. 当函数执行到最后一个语句,或者是遇到return语句.
函数的命名规范:
变量:可以由字母,数字,下划线组成,但是不能以数字开头.
常量:同变量,但,一般大写.
函数:和变量一样.
大小写: 变量区分大小写,而函数不区分大小写,
但是一般推荐在调用函数时,和声明函数时保持一致.
函数的参数的赋值方式
函数的赋值方式,类似于变量的赋值,也分传值赋值, 和引用赋值.
对于传值赋值,是指把实参复制一份给形参,因此,函数内部对形参处理后,
并不影响外部传入的实参.
而引用赋值,是指,把实参的地址传给形参,
因此,本质上,函数内部的形参,与外部的实参,指向一个内存地址.
因此,函数内部对形参的操作,将会影响到实参.
PHP里,如何允许以引用传值形式,调用函数,配置哪个选项?
allow_call_time_pass_reference
函数的实参与形参是如何分配的?
Function foo ($arg1,$arg2,$arg3);
当调用的时候, 不管形参有没有默认值,
Foo(1,2,3,4,5), 实参按顺序依次赋给形参.
如果实参多于形参的个数,多余的实参自动抛弃.
但是, 如果按顺序分配实参后, 实参的数量小于形参,而没得到值的形参,又没有声明默认值.
将会报错.
函数允许没有参数,也允许没有返回值.
在PHP里,函数不能重写定义,会报redeclare错误.
已定义的函数也不能被清除掉.
PHP中的函数与js中的函数的不同之处
1: 在js中,可以多次声明同名函数 // 但是在一个PHP页面中,不能多次同名函数
function t() { }
function t() { }
2: 在js中,函数名区分大小写
在PHP中, 函数名不区分大小写(类方法也不区分)
function t() {
echo 'aaa'; }
T();
3: 在PHP中,调用函数时的参数个数必须与声明函数的参数一致.
在js中可能见这种情景:
function t(arg1,arg2,arg3) { }
t(99);
在PHP中
function t($a,$b,$c) {
echo $a + $b + $c; }
t(1,2,3);
t(1,2); //错
// 4: 在PHP的函数,函数声明时,某个参数可以有"默认值"
function t($a,$b,$c=9) {
echo $a + $b + $c; }
t(1,2,3);
t(1,2);
浙公网安备 33010602011771号