您的位置:首页 > 编程语言 > PHP开发

自己的php学习笔记(部分)

2016-03-21 16:53 537 查看
让php文件支持中文的语句

<?php header("Content-type: text/html; charset=utf-8");?>

php之empty与isset
empty
    如果empty()括号中的变量为空或为NULL即返回TRUE
isset
    如果isset()括号中的变量已经赋值且不为空或不为NULL即返回TRUE
php之常量
1、在php语言中变量名字不存在区分字母大小写,但是有一种情况除外——常量   在php中定义常量时默认是区分大小写的
ex:
    define(“CONSTANT”,100)  #定义一个CONSTANT常量  并赋初值100  该常量默认区分大小写
    define(“CONSTANT”,100,true); #定义一个CONSTANT常量 并赋初值100 该常量不区分大小写
2、常量前面是不用加美元符号的
    ex:echo CONSTANT;
3、常量定义方法:
define(“CONSTANT”,100);   or define(“CONSTANT”,100,true);
php之逻辑运算符
and  &&  与操作符
or     ||      或操作符
&
            按位与
|
              按位或
^
            按位异或
~
            按位非
ex:
$a = 20                #二进制表示为10100
$b = 30                #二进制表示为11110
$a & $b = 20       #如下注释为按位与

/*

10100

11110

————

10100

*/

$a | $b = 30  
     #如下注释为按位或

/*

10100

11110

————

11110

*/
and && or || 存在短路问题

& | 不存在短路问题

and && 操作时  在前面的表达式为false时就不去执行后面的表达式了  直接返回false

or || 操作时 在前面的表达式为true时就不去执行后面的表达式了  直接返回true

php之其他运算符

?:运算符

    ex:!isset($num2)?$print='it is has been seted':$print='it is hasn\'t been seted';

(在?:运算符中  如果?前的表达式为真,执行?:之间的语句,否则执行:之后的语句)

php之print与echo

echo和print的区别

  PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。

  $r = print "Hello World";

  这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。
php之if与elseif
    php中if后面只能跟boolean类型

     php中多项条件分支结构 if……elseif……结构 与c语言(if……else if……)、py语言(if……elif……)加以区分

    php if……elseif……语句中elseif语句有一个基本规则,总是优先把范围小的条件放在前面处理
    ex:if($hour<6){
    echo"hello good moring";
}
elseif($hour<9){
    echo"good moring";
}
elseif($hour<14){
    echo"good noon";
}
php之switch

switch()括号中只能跟字符串或者整形而不是布尔型
ex:
    $data = "Mon";
    switch($data){
    case "Mon":    echo "monday";  break;
    case "Tue":    echo "tuesday";  break;
    ……
    default:    echo “ERROR”;  break;
}
break很关键要记得加上。
case中可以不存在语句(如果不加break语句即会控制跳入下一个case然后输出下个case控制的语句)  如下例

ex:

    switch($data){

    case "Mon":    echo "monday";  break;

    case "Tue":

    case "Wed":  echo"<p>3</p>"; break;
    case "Thu":
    case "Fri":  echo"<p>5</p>"; break;

    ……

    default:    echo “ERROR”;  break;

}
ps(如果$data==Tue则由于该case中没有语句也没有break语句  就会跳入Wed case中  输出3)
php之exit语句
php中exit语句都会直接退出当前脚本
有三种使用方法
1、exit()作为函数来使用
2、exit直接作为语句来使用
3、die()作为别名函数来使用
php之变量范围
在函数里面定义的变量称为局部变量,在函数外访问是非法的
在函数外面定义的全局变量无法直接在函数中使用
必须在函数中使用global关键字定义目标变量,以告诉函数主体此变量为全局变量
php之回调函数
调用函数时并不是传递一个标准的变量作为参数而是将另一个函数作为参数传递到调用函数中。如果在函数定义时 出现“callback”类型的参数,该函数就是回调函数
php之变量函数
如果一个变量后面带有圆括号,php将寻找与变量的值同名的函数,并尝试执行它
ex:
    function test($a,$b)
{
    return $a+$b;
}
$fun = "test";
echo $fun;  //将会打印出test字符串
echo $fun(2,3);  //将会打印出2和3的和  5
php之回调函数应用

要使用回调函数时直接使用普通变量作为形参即可,借助变量函数进行实现
ex:
function prints($fun)
    {
           for($i=0;$i<100;$i++)
           {
              if($fun($i))  //在fun后面加上圆括号  php进行自动函数匹配(变量函数)
                  continue;
              else
                  echo $i."<br>";
            }
       }

       function one($num)
       {
             return $num%3==0;
        }

        prints("one");//回调函数(以变量函数辅助实现)

php之数组定义、修改、索引
php中数组可以直接使用下标直接赋值使用
ex:
$array[0]=1;
$array[1]=2;
$array[2]=3;

..........
数组也可以直接使用下标法进行数值的修改
php数组可以通过array语句进行定义
ex:

$arr = array("name"=>"cb","age"=>"20");

php中如果数组后面不加入索引值,php会调用默认索引值,而且会以最高索引值递增
ex:
$array[]=4 //由于上例中已经存到索引值为2  所以该索引为3
$array[]=5  //索引值为4

$array[]=6
 //索引值为5
……
php中数组索引时不要在[]中使用引号。
ex:
$lamp['os']   //这样会出现错误
如果对数组索引使用引号时,必须使用花括号将其括住
ex:
{$lamp['os']}    //这样正确
php之多维数组

定义方法用array语句
如下例定义的一个三维数组(也可以使用默认索引值)
ex:

$wage = array(
            "产品部"=>array(
                array(1,"李某","产品部经理",6000),
                array(2,"周某","职员",4000),
                array(3,"吴某","职员",3200),
            ),
            "市场部"=>array(
                array(1,"高某","市场部经理",5000),
                array(2,"洛某","职员",3000),
                array(3,"峰某","职员",2400),
            ),
            "财务部"=>array(
                array(1,"郑某","财务部经理",4500),
                array(2,"王某","职员",2000),
                array(3,"冯某","职员",1500),
            ),
        );

多维数组的访问和c语言以及py语言相同
php之数组遍历

php中可以利用for循环进行数组遍历,前提是该数组是以默认索引值进行存储数据(与c语言、py语言相同)
php中常利用foreach函数进行数组的遍历
ex:
foreach($wage as $sector => $table) //foreach该种形式可以获取数组的键和值
        {
            echo'<table border="1" width="600" align="center">';
            echo"<caption><h2>".$sector."10月份工资表</h2></caption>";
            echo"<tr bgcolor='#dddddd'><th>编号</th><th>姓名</th><th>职务</th><th>工资</th></tr>";
            foreach($table as $row)
            {
                echo"<tr>";
                foreach($row as $col)
                {
                    echo"<td>".$col."</td>";
                }
                echo"</tr>";
            }
            echo"</table><br>";
        }
php之预定义数组
在php中提供了一套附加的预定义数组
1、$_SERVER
是包含了服务器常规信息的一个自带数组
$_SERVER['REMOTE_ADDR']

可以打印出访问者ip
$_SERVER['SERVER_ADDR']

可以打印出服务器ip
2、$_GET
通过URL
GET方式传递的变量组成的数组,在服务器页面中通过$_GET超全局数组获取URL或表单的GET方式传递过来的参数
3、$_POST
通过HTTP
POST方法传递的变量组成的数组,$_GET和$_POST都可以保存表单提交的变量使用哪个数组取决于提交表单时,在表单form标记中的method属性使用的方法是POST还是GET

4、$_REQUEST

无论通过post方式还是get方式传递的全部内容都可以通过$_REQUEST进行访问,但是$_REQUEST访问速度很慢,不推荐使用
5、$_FILES
使用表单file输入域上传文件时,必须使用post提交,但是并不能通过$_POST超全局数组获取到表单中file域的内容。$_FILES是一个二维数组,包含了五个子数组元素,其中第一个下标是表单中file输入域的名称,第二个下标用于描述上传文件的属性。
php之类与对象
在类中声明成员属性时,变量前面一定要使用一个关键字,例如public、static、private等,但是这些关键字修饰的变量都有一定的意义。如果不需要有特定的意义的修饰,就使用“var”关键字,一旦成员属性有其他的关键字修饰就需要去掉“var”。
类实例化对象
ex:
$person = new Person();
对象中成员访问使用“->”来完成
php仍然存在$this特殊对象引用,与c++中this指针相同。
php之类构造方法与析构方法
php中的构造函数,在php5之前与c++语言中构造方法相同,在php5中大多为“__construct()”,向下兼容。
ex:
function __construct(){
    //赋初始值
}
如果一个类中没有名为__construct()的构造方法,php将搜索与类名相同名字的构造方法执行。
php类中的构造方法没办法进行重载,即一个类只能有一种构造方法,可以使用默认参数方法。
析构函数,“__destruct()”花括号中不能带有参数
php中的魔术方法
__set():该方法需要两个参数,第一个参数为传入的属性名,第二个参数为传入的属性值
ex:

function __set($propertyName,$propertyValue)
            {
                if($propertyName=="sex")
                {
                    if(!($propertyValue=="男"||$propertyValue=="女"))
                        return;
                }
                if($propertyName=="age")
                {
                    if($propertyValue>150||$propertyValue<0)
                        return;
                }
                $this->$propertyName=$propertyValue;
            }

__get():该方法需要一个参数,传入的属性名
当在类外运用"->"进行访问成员属性时  会自动调用该函数
php之类的继承
php中继承机制几乎与c++中继承机制相同,php中只支持单继承,不支持多继承。
php中继承关键字为"extends"
ex:

class student extends Person{}

php之private、protect、public
和c++类的继承相同,private只允许本类自身进行访问。protect允许本类自身及来自本类的继承类进行访问。public允许在类外进行访问。
php中可以在子类中对父类的成员函数进行覆盖重写
ex:

class Person
        {
            protected $sex;
            protected $age;
            protected $name;

            function __construct($name="",$sex="man",$age=1)
            {
                $this->name = $name;
                $this->sex = $sex;
                $this->age = $age;
            }
            function say()
            {
                echo "My name is".$this->name."I'm a".$this->sex."I'm".$this->age."years old";
            }
        }
        class student extends Person
        {
            protected $school;
            function __construct($name="",$sex="man",$age=1,$school="")
            {
                $this->name = $name;
                $this->sex = $sex;
                $this->age = $age;
                $this->school = $school;
            }
            function say()
            {
                echo "My name is ".$this->name." I'm a ".$this->sex." I'm ".$this->age." years old,I'm study in ".$this->school;
            }
        }

php之final关键字
使用final标识的类,不能被继承。
在类中使用final标识的成员方法,在子类中不能被覆盖。
php之static关键字

使用static关键字可以将类中成员标识为静态的,既可以标识成员属性,也可以标识成员方法。
如果将一个成员属性使用static关键字标识,则不管通过该类创建了多少个对象,这个static成员总是唯一存在的,在多个对象之间共享的
对static标识成员的访问方法
在类内可以使用self::+成员名称 进行访问与操作
在类外可以使用类名::+成员名称 进行访问与操作
php之const关键字

const关键字与static关键字用法基本相同,const在定义常量时通常是大写,并且不加$符号。
php之克隆对象
php中使用"clone"关键字克隆对象
ex:
$p2 = clone
$p1;
php之字符串处理
如果希望一个字符与字符编码之间进行转换可以使用ord()和chr()函数
php之正则表达式
在进行正则匹配时要将模式表达式放入定界符之间。作为定界的字符也不仅仅局限于使用斜线“/”例如“#”、“!”、“{}”、“|”等
如果这个符号在正则表达式中有一些特殊意义,我们就必须使用转义字符“\”取消它的特殊意义,将其变成一个普通的原子
例如:
单引号、双引号、*号、+号、.号、/号。
php中一些原子字符
\f  匹配一个换页符
\n 匹配一个换行符
\r  匹配一个回车符
\t  匹配一个制表符
\v  匹配一个垂直制表符
\d 匹配任意一个十进制数字,等价于[0-9]
\D 匹配一个除十进制数字以外的字符,等价于[^0-9]
\s  匹配任意一个空白字符,等价于[\f\n\r\t\v]
\S  匹配除空白字符之外的任何一个字符,等价于[^\f\n\r\t\v]
\w  匹配任意一个数字、字母或下划线,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  代码 技术 php