zoukankan      html  css  js  c++  java
  • php笔记

    1.要在一个函数中访问一个全局变量,需要使用 global 关键字。

    function myTest()
    {
        global $x,$y;
        $y=$x+$y;
    }
     

    PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

    $x=5;
    $y=10;
     
    function myTest()
    {
        $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
    } 
    

     

    当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。

    要做到这一点,请在您第一次声明变量时使用 static 关键字:

    function myTest()
    {
        static $x=0;
        echo $x;
        $x++;
    }
     
    myTest();
    myTest();
    myTest();
    ?>

    函数参数

    <?php
    function myTest($x)
    {
        echo $x;
    }
    myTest(5);
    ?>

    echo 和 print 区别:

    • echo - 可以输出一个或多个字符串
    • print - 只允许输出一个字符串,返回值总为 1

     PHP var_dump() 函数返回变量的数据类型和值:

    $x = 10.365;
    var_dump($x);

    在 PHP 中,对象必须声明。

    首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。

    <?php
    class Car
    {
      var $color;
      function Car($color="green") {
        $this->color = $color;
      }
      function what_color() {
        return $this->color;
      }
    }
    ?>
    

      以上实例中PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。

    定义常量

    最后一个参数是大小写是否敏感

    define("GREETING", "欢迎访问 Runoob.com");

    define("GREETING", "欢迎访问 Runoob.com", true);

    字符串

    并置运算符 (.) 用于把两个字符串值连接起来。

    <?php 
    $txt1="Hello world!"; 
    $txt2="What a nice day!"; 
    echo $txt1 . " " . $txt2; 
    ?>

    strlen() 函数返回字符串的长度(字符数)。

    strpos() 函数用于在字符串内查找一个字符或一段指定的文本。

    <?php 
    echo strpos("Hello world!","world"); 
    ?>

    == 等于

    ===绝对等于,类似js里的===

    and 与,or 或,xor 异或

    && 与,|| 或,!非

    数组合并用 + 

    $x = array("a" => "red", "b" => "green"); 
    $y = array("c" => "blue", "d" => "yellow"); 
    $z = $x + $y; // $x 和 $y 数组合并

    数组

    $cars=array("Volvo","BMW","Toyota");

    遍历数组

    <?php
    $cars=array("Volvo","BMW","Toyota");
    $arrlength=count($cars);
     
    for($x=0;$x<$arrlength;$x++)
    {
        echo $cars[$x];
        echo "<br>";
    }
    ?>

    关联数组

    <?php
    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    echo "Peter is " . $age['Peter'] . " years old.";
    ?>

    数组排序:很多种比如

    <?php
    $cars=array("Volvo","BMW","Toyota");
    sort($cars);
    ?>

    PHP超级全局变量

    http://www.runoob.com/php/php-superglobals.html

    PHP 超级全局变量列表:

    • 全局变量数组
    • $GLOBALS
    • 获取server相关变量的值,比如$_SERVER['REMOTE_ADDR']来获取ip
    • $_SERVER
    • 获取页面传来的参数,比如$name = $_REQUEST['fname']; 
    • $_REQUEST
    • $name = $_POST['fname']; 
    • $_POST
    • echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
    • $_GET
    • $_FILES
    • $_ENV
    • $_COOKIE
    • $_SESSION

    post实例

    <html>
    <body>
    
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    Name: <input type="text" name="fname">
    <input type="submit">
    </form>
    
    <?php 
    $name = $_POST['fname']; 
    echo $name; 
    ?>
    
    </body>
    </html>

    foreach循环

    <?php
    $x=array("one","two","three");
    foreach ($x as $value)
    {
        echo $value . "<br>";
    }
    ?>

    PHP 的真正威力源自于它的函数。

    在 PHP 中,提供了超过 1000 个内建的函数。

    PHP 魔术变量

    <?php echo '这是第 " ' . __LINE__ . ' " 行'; ?>
    
    <?php echo '该文件位于 " ' . __FILE__ . ' " '; ?>
    
    <?php echo '该文件位于 " ' . __DIR__ . ' " '; ?>
    <?php function test() { echo '函数名为:' . __FUNCTION__ ; } test()?>
    <?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>

    __TRAIT__

    优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。

    <?php
    class Base {
        public function sayHello() {
            echo 'Hello ';
        }
    }
     
    trait SayWorld {
        public function sayHello() {
            parent::sayHello();
            echo 'World!';
        }
    }
     
    class MyHelloWorld extends Base {
        use SayWorld;
    }
     
    $o = new MyHelloWorld();
    $o->sayHello();
    ?>

    默认情况下,所有常量、类和函数名都放在全局空间下,就和PHP支持命名空间之前一样。

    命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。

    < ?php  
    // 定义代码在 'MyProject' 命名空间中  
    namespace MyProject;  
     
    // ... 代码 ...  

    以下代码会出现语法错误:
    html> <?php namespace MyProject; // 命名空间前出现了“<html>” 会致命错误 - 命名空间必须是程序脚本的第一条语句 ?>

     

    子命名空间

    <?php
    namespace MyProjectSubLevel;  //声明分层次的单个命名空间


    PHP 面向对象

    对象的主要三个特性:

    • 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。
    • 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。
    • 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。

    类定义如下

    <?php
    class phpClass {
      var $var1;
      var $var2 = "constant string";
      
      function myfunc ($arg1, $arg2) {
         [..]
      }
      [..]
    }
    ?>

    $runoob = new Site; 

    // 调用成员函数,设置标题和URL 
    $runoob->setTitle( "菜鸟教程" ); 

    // 调用成员函数,获取标题和URL 
    $runoob->getTitle(); 

    构造函数

    function __construct( $par1, $par2 ) {
       $this->url = $par1;
       $this->title = $par2;
    }

    析构函数

    析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数

    <?php
    class MyDestructableClass {
       function __construct() {
           print "构造函数
    ";
           $this->name = "MyDestructableClass";
       }
    
       function __destruct() {
           print "销毁 " . $this->name . "
    ";
       }
    }
    
    $obj = new MyDestructableClass();
    ?>

    继承

    class Child extends Parent {
       // 代码部分
    }

    接口
    <?php
    
    // 声明一个'iTemplate'接口
    interface iTemplate
    {
        public function setVariable($name, $var);
        public function getHtml($template);
    }
    
    
    // 实现接口
    class Template implements iTemplate
    {
        private $vars = array();
      
        public function setVariable($name, $var)
        {
            $this->vars[$name] = $var;
        }
      
        public function getHtml($template)
        {
            foreach($this->vars as $name => $value) {
                $template = str_replace('{' . $name . '}', $value, $template);
            }
     
            return $template;
        }
    }

    常量

    const constant = '常量值';

    抽象类
    bstract class AbstractClass
    {
     // 强制要求子类定义这些方法
        abstract protected function getValue();
        abstract protected function prefixValue($prefix);
    
        // 普通方法(非抽象方法)
        public function printOut() {
            print $this->getValue() . PHP_EOL;
        }
    }

    static final同java

    调用父类构造方法

    PHP 不会在子类的构造方法中自动的调用父类的构造方法。要执行父类的构造方法,需要在子类的构造方法中调用 parent::__construct() 。

     
    
    

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    AutoFac
    MEF 基础简介 四
    MEF 基础简介 三
    MEF 基础简介 二
    MEF 基础简介 一
    Ioc原理理解
    .NET里面 abstract class和Interface有什么区别以及用法的展现?
    .NET-ORM框架EF-Code First代码优先
    SQL SERVER PIVOT与用法解释
    SQL Server 中的 NOLOCK 到底是什么意思?
  • 原文地址:https://www.cnblogs.com/lakeslove/p/7223646.html
Copyright © 2011-2022 走看看