标签:
PHP 函数:
1:PHP函数不支持重载,而且函数是不区分大小写的,但是建议区分大小写~~!毕竟需要和谐!
2:递归函数 不要递归过多,可能会因为堆栈溢出导致脚本崩溃。
<?php
function reverse($a){
if($a < 20){
echo "this is $a";
$a += 1;
reverse($a);
}
}
3:参数默认是按值传递,标量。 如果想要按引用传递,则要加&。
默认参数 :
function default_param($a = "default value"){
echo "$a";
return;
}
null 和 空是不一样的。
default_param(); // default value;
default_param(null); // ;
default_param("hahha"); // hahha
还有事非标量的传值:
function makecoffee($type = array("test")){
}
3:
传递非默认值的参数要放在默认值参数的左边。
这是错误的示范:
<?php
function makeyogurt($type = "acidophilus", $flavour)
正确的示范:
<?php
function makeyogurt($flavour, $type = "acidophilus");
4:多个参数的传递,我理解为动态参数:
<?php
function sum(...$number){
$acc = 0;
foreach($number as $n){
$acc += $n;
}
echo $acc;
}
sum(1,2,3,4);
参数可以定义类型
function sum(DataInterval...$interval){
do ......
}
也就是说传入的interval就是要求是DataInterval。
5:return返回
没有return时,默认是null。
如果要返回多个值,可以通过数组实现类似的效果。
如果要返回引用则需要在两个地方处理
<?php
function &reference_func(){
//return $some_ref; 这是官方的写法。我觉着不是很清楚
$val = "value";
return $val;
}
//使用这个返回值
$user_ref = & reference_func();
可变函数:
这个很优秀。
<?php
function foo(){
echo "this is function foo\n";
}
function bar(){
echo "this is function bar\n";
}
$func = ‘foo‘;
$func();
$func = ‘bar‘;
$func();
6:匿名函数:也叫闭包~!
<?php
$greet = function($name){
printf("Hello %s \r\n",$name);
}
$greet("ni hao");
基本的使用,还有变量的作用范围。以后再看
7: class的介绍。
new部分,我感觉超级优秀!!
比如新建的类可以这样玩。
$classname = ‘Foo‘;
$instance = new $classname(); //Foo()
感觉像是只要你建好类,就可以动态加载,然后代码方面会非常简洁。
类的继承。 不能多继承,一个类只能继承一个类
访问属性的方法: 真是综合了Python和c++语言,各种混合。
访问非静态属性:$this->property
访问静态属性:self::$property
类中的常量使用:
class MyClass{
const constant = ‘constant value‘;
function showConstant(){
echo self::constant. "\n";
}
}
在类外面访问const
$class = new MyClass();
echo $class::constant. "\n"";
自动加载类。这个主要是用在引用定义类的文件,就像每个java类是一个文件,使用时需要import,然后一堆import
<?php
function __autoload($class_name){
require_once $class_name.‘.php‘;
}
$obj1 = new MyClass1();
$obj2 = new MyClass2();
__autoload以后要被废弃了。
先这么用着
7:构造和析构函数的使用:
__construct(){
}
__destruct(){
}
如果要调用父类的构造函数
__construct(){
parent::__construct();
do other construct;
}
::这个是叫 范围解析操作符。一般是用来访问静态常量,类的常量。
标签:
原文地址:http://www.cnblogs.com/-Doraemon/p/4748854.html