$arr = array("a","b","c");
print_r($arr[0]);
echo "<br/>";
$b = $arr[1];
echo $b;
print_r($arr[0]);
echo "<br/>";
$b = $arr[1];
echo $b;
2017-05-10
class Car{
//在这里定义一个共有属性name
public $name = '汽车';
}
$car = new Car();
//在这里输出$car对象的name属性
$name = 'name';
echo $car->$name;
//在这里定义一个共有属性name
public $name = '汽车';
}
$car = new Car();
//在这里输出$car对象的name属性
$name = 'name';
echo $car->$name;
2017-05-10
序列化以后,只存储类的名字,不会存储它所在的类的格式。
比如在家把对象序列化,传输至办公室还原,办公室可以得到对象的类名。但在这里,家里设计的类,与办公室设计的类务必一样,这样才使得家里的程序,与办公室的程序,具有一致性、共通性,才能使得对象序列化这个动作,有意义。
比如在家把对象序列化,传输至办公室还原,办公室可以得到对象的类名。但在这里,家里设计的类,与办公室设计的类务必一样,这样才使得家里的程序,与办公室的程序,具有一致性、共通性,才能使得对象序列化这个动作,有意义。
2017-05-10
对call函数的解读:
你调用了一个函数eat,而这个函数在你设计的类中,是没有提前声明的。
比如在car类中,你硬是调用了eat、walk两个函数。比如eat('肉','米')。那么,你的违规调用有两个关键点,一个是eat这个函数名,另一个是肉、米等函数参数。
对于__call魔术方法,它就有两个参数,__call($参数1,$参数2);
参数1,就是你违规调用的函数名,如eat。参数2,是你违规调用的参数,如肉和米。显然,肉和米是两个参数,它们是以数组的形式存入到了参数2中。
你调用了一个函数eat,而这个函数在你设计的类中,是没有提前声明的。
比如在car类中,你硬是调用了eat、walk两个函数。比如eat('肉','米')。那么,你的违规调用有两个关键点,一个是eat这个函数名,另一个是肉、米等函数参数。
对于__call魔术方法,它就有两个参数,__call($参数1,$参数2);
参数1,就是你违规调用的函数名,如eat。参数2,是你违规调用的参数,如肉和米。显然,肉和米是两个参数,它们是以数组的形式存入到了参数2中。
2017-05-09
PHP的 file_exists = is_dir + is_file
is_file 只判断文件是否存在;
file_exists 判断文件是否存在或者是目录是否存在;
is_dir 判断目录是否存在;
is_file 只判断文件是否存在;
file_exists 判断文件是否存在或者是目录是否存在;
is_dir 判断目录是否存在;
2017-05-09