① 如何在php中使用内部类
方法如下:
public class Lei{
public static void main(String ages[]){
Leis x=new Leis();
}
public static class Leis{
public Leis(){
System.out.println("asd");
}
}
}
主函数调用的是静态方法,内部类要定义为static,Leis()为构造方法,用来初始化成员变量,不能用“x.Leis()”
② php中常用的魔术方法有哪些
php规定以两个下划线__开头的方法都保留为魔术方法,建议自定义函数的函数名最好避开。
__construct() 实例化类时自动调用。
__destruct() 类对象使用结束时自动调用。
__set() 在给未定义的属性赋值的时候调用。
__get() 调用未定义的属性时候调用。
__isset() 使用isset()或empty()函数时候会调用。
__unset() 使用unset()时候会调用。
__sleep() 使用serialize序列化时候调用。
__wakeup() 使用unserialize反序列化的时候调用。
__call() 调用一个不存在的方法的时候调用。
__callStatic()调用一个不存在的静态方法是调用。
__toString() 把对象转换成字符串的时候会调用。比如 echo。
__invoke() 当尝试把对象当方法调用时调用。
__set_state() 当使用var_export()函数时候调用。接受一个数组参数。
__clone() 当使用clone复制一个对象时候调用。
③ php 有函数内部函数的定义吗
可以这样写,但调用的时候有些诀窍
$obj=newA;
$F=$obj->func1();//这个调用只能出现一次
$obj->func2();//上面的调用了之后,这里就可以直接调用内部函数了
④ PHP中这种方法怎样写的
类里的方法,变量如果不加任何描述关键词那么默认的都是public
至于那种连贯写法主要是方法返回了当前类的对象
就像一楼的那种
⑤ php 类内部函数互相调用
function c()
{
self::b();
}
⑥ PHP中的常用数组操作方法有哪些
PHP中的常用数组操作方法(每种都给你举个2个例子)
一、数组操作的基本函数
数组的键名和值
array_values($arr); 获得数组的值
array_keys($arr);获得数组的键名
数组的内部指针
current($arr); 返回数组中的当前单元
pos($arr); 返回数组中的当前单元
数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法
echo$a;compact(var1,var2,var3);用给定的变量名创建一个数组
二、数组的分段和填充
数组的分段
array_slice($arr,0,3); 可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon")); 可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除
分割多个数组
array_chunk($arr,3,TRUE); 可以将一个数组分割成多个,TRUE为保留原数组的键名
数组的填充
array_pad($arr,5,'x'); 将一个数组填补到制定长度
三、数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr); 将数组栈的最后一个元素弹出(出栈)
四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素
五、回调函数
array_walk($arr,'function','words'); 使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2); 可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
六、数组的排序
通过元素值对数组排序
sort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
通过键名对数组排序
ksort($arr); 按照键名正序排序
krsort($arr); 按照键名逆序排序
七、数组的计算
数组元素的求和
array_sum($arr); 对数组内部的所有元素做求和运算
数组的合并
array_merge($arr1,$arr2); 合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2; 对于相同的键名只保留后一个
数组的差集
array_diff($arr1,$arr2); 返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3); 返回差集结果数组,键名也做比较
数组的交集
array_intersect($arr1,$arr2); 返回交集结果数组
array_intersect_assoc($arr1,$arr2); 返回交集结果数组,键名也做比较
八、其他的数组函数
range(0,12); 创建一个包含指定范围单元的数组
array_unique($arr); 移除数组中重复的值,新的数组中会保留原始的键名
⑦ PHP怎么调用函数内部数组变量
如你要调用function的运行结果,首先function要有
返回值
。你只需这样写:
function
creatList(){
....//你的代码
return
$tr_array;//再末尾加上这句,就可以在外部获取运行结果
}
具体调用:
$test
=
new
createHistoryList();
$arr
=$test->creatList();//这不就获得$tr_array数组的值了么
print_r
($arr);//打印$arr
⑧ php函数内部调用问题
私有方法只能在类里边使用,不能再类外使用。 如果函数内引用函数外定义的变量, 需要global一下成为全局变量,然后才能在函数内部使用它。
⑨ PHP 方法能不能像递归函数一样在方法内部调用自己
可以啊,设置好跳出条件,实例化类,直接调用递归的方法,完全可以做个简单的例子
⑩ php 方法里边能否嵌套方法
$foo -> bar ()-> bar ()-> bar ()-> bar ()-> hello (); 是php框架中常用的形式。
首先理解一下$this,伪变量 $this 可以在当一个方法在对象内部调用时使用。$this 是一个到调用对象的引用,先看一下例子吧
<?php
class foo{
function bar() {
return $this;
}
function hello() {
echo "Hello";
}
}
$foo = new foo();
$foo->bar()->bar()->bar()->bar()->hello();
?>
这种新颖的调用方法有一个好处就是很直观,如hello()方法是我们要操作方法,而bar()是一些步骤方法,在这里我再写个
<?php
class example {
var $name;
var $sex;
function name($name) {
$this->name = $name;
return $this;
}
function sex($sex) {
$this->sex = $sex;
return $this;
}
function trace() {
print("Name: {$this->name},Sex: {$this->sex}");
}
}
$person = new example;
$person->name("lisha")->sex("female")->trace();
?>