1、函数名:basename()
定义和用法
basename() 函数返回路径中的文件名部分。
语法
basename(path,suffix)
参数
path 必需。规定要检查的路径。
suffix 可选。规定文件扩展名。如果文件有 suffix,则不会输出这个扩展名。
例子
<?php
$path = "/testweb/home.php";
//显示带有文件扩展名的文件名
echo basename($path);
//显示不带有文件扩展名的文件名
echo basename($path,".php");
?>
输出:
home.php
home
2、函数名:explode()
定义和用法
explode() 函数把字符串分割为数组。
语法
explode(separator,string,limit)
separator | 必需。规定在哪里分割字符串。 |
string | 必需。要分割的字符串。 |
limit | 可选。规定所返回的数组元素的数目。 |
<?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
print_r (explode(" ",$str));
?>
输出:
Array
(
[0] => Hello
[1] => world.
[2] => It's
[3] => a
[4] => beautiful
[5] => day.
(
[0] => Hello
[1] => world.
[2] => It's
[3] => a
[4] => beautiful
[5] => day.
)
3、函数名:get_object_vars()
定义与用法
返回由 obj 指定的对象中定义的属性组成的关联数组,
获取$object对象中的属性,组成一个数组。
语法:
get_object_var($object)
<?php
class person
{
public $name="王美人";
public $age = 25;
public $birth;
}
$p = new person();
print_r(get_object_vars($p));
?>
输出:
Array ( [name] => 王美人 [age] => 25 [birth] => )
4、array_chunk()函数
已知
$arr=array("userid"=>"1","userid"=> "44","userid"=> "562","userid"=> "123","userid"=> "125","userid"=> "888","userid"=> "98");
想得到的效果是三个字符串,类似于 "1,44,562","123,125,888","98"
步骤:
先把数组$arr分割为三个数组,用array_chunk()函数
//PHP将某个数组分割成指定元素的多个数组
//array array_chunk ( array $input , int $size [, bool $preserve_keys ] )
//array_chunk() 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始。
//将可选参数 preserve_keys 设为 TRUE,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE。
$user=array_chunk($arr,3,false);//这里已经把$arr分割为三个数组了
$count=count($user);//利用count()函数计算$array里面有多少个数组
for($i=0;$i<$count;$i++)//利用for循环对各个小数组进行处理
{
foreach($user as $k=>$v )
{
$result[$i][$k]=$v['userid'];//不添加$i的话,第一个小数组有多少个元素,后面的数组也会跟着多少个
$string =implode(",",$result[$i]);//利用implode()函数把数组转为字符串
echo $string;
}
}
至此,输出了"1,44,562","123,125,888","98"三个字符串
5、
构造函数和析构函数
构造函数 void __construct ([ mixed $args [, $... ]] )
PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。
<?php
class BaseClass {
function __construct () {
print "In BaseClass constructor\n" ;
}
}
class SubClass extends BaseClass {
function __construct () {
parent :: __construct ();
print "In SubClass constructor\n" ;
}
}
class OtherSubClass extends BaseClass {
// inherits BaseClass's constructor
}
// In BaseClass constructor
$obj = new BaseClass ();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass ();
// In BaseClass constructor
$obj = new OtherSubClass ();
class BaseClass {
function __construct () {
print "In BaseClass constructor\n" ;
}
}
class SubClass extends BaseClass {
function __construct () {
parent :: __construct ();
print "In SubClass constructor\n" ;
}
}
class OtherSubClass extends BaseClass {
// inherits BaseClass's constructor
}
// In BaseClass constructor
$obj = new BaseClass ();
// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass ();
// In BaseClass constructor
$obj = new OtherSubClass ();
?>
注意:
__construct 是系统内置的,叫魔术方法,每次实例化类是会自动执行此方法。如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承(假如没有被定义为 private 的话)。
析构函数 void __destruct ( void )
<?php
class MyDestructableClass {
function __construct () {
print "In constructor\n" ;
$this -> name = "MyDestructableClass" ;
}
function __destruct () {
print "Destroying " . $this -> name . "\n" ;
}
}
$obj = new MyDestructableClass ();
class MyDestructableClass {
function __construct () {
print "In constructor\n" ;
$this -> name = "MyDestructableClass" ;
}
function __destruct () {
print "Destroying " . $this -> name . "\n" ;
}
}
$obj = new MyDestructableClass ();
?>
注意: 和构造函数一样,父类的析构函数不会被引擎暗中调用。要执行父类的析构函数,必须在子类的析构函数体中显式调用 parent::__destruct()。此外也和构造函数一样,子类如果自己没有定义析构函数则会继承父类的。析构函数即使在使用 exit() 终止脚本运行时也会被调用。在析构函数中调用 exit() 将会中止其余关闭操作的运行。
在PHP5以前的版本中,构造函数的名称必须与类名相同,这种方法在PHP5中仍然可以使用,但现在已经很少有人用了。
PHP5以及之后的版本,构造函数用__construct()方法来声明,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。
为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个与类名相同名的构造方法。
PHP5以及之后的版本,构造函数用__construct()方法来声明,这样做的好处是可以使构造函数独立于类名,当类名发生改变时不需要改相应的构造函数名称了。
为了向下兼容,如果一个类中没有名为__construct( )的方法,PHP将搜索一个与类名相同名的构造方法。
如果__construct( )的方法、与类名相同名的构造方法同时存在的话,优先使用__construct( )的方法。