zoukankan      html  css  js  c++  java
  • php学习记录《七》

    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 ";
    }
    function bar(){
    echo "this is function bar ";
    }


    $func = 'foo';
    $func();

    $func = 'bar';
    $func();


    6:匿名函数:也叫闭包~!
    <?php
    $greet = function($name){
    printf("Hello %s ",$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. " ";
    }
    }
    在类外面访问const

    $class = new MyClass();
    echo $class::constant. " "";

    自动加载类。这个主要是用在引用定义类的文件,就像每个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;
    }

    ::这个是叫 范围解析操作符。一般是用来访问静态常量,类的常量。

  • 相关阅读:
    socketpair和pipe的区别
    C++异常与析构函数及构造函数
    System v shm的key
    不可靠信号SIGCHLD丢失的问题
    非阻塞IO函数
    Android 编译时出现r cannot be resolved to a variable
    找工作笔试面试那些事儿(5)---构造函数、析构函数和赋值函数
    unable to load default svn client 和 Eclipse SVN 插件与TortoiseSVN对应关系
    演示百度地图操作功能
    求第i个小的元素 时间复杂度O(n)
  • 原文地址:https://www.cnblogs.com/-Doraemon/p/4748854.html
Copyright © 2011-2022 走看看