分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

php权威编程有趣部分

发布时间:2023-09-06 01:19责任编辑:白小东关键词:暂无标签

1.isset empty
如果遇到null,isset判断为false;empty 判断为true
isset(var1, var2,...) 可以判断多个变量

2.unset
unset可以取消之前定义的变量,如果该变量没有被其他变量引用的话,就会释放这个变量占用的内存空间.

3.php5中对象的传递是一个引用传递

4.== 和 ===
==比较时,执行类型转换,再比较;
===不仅比较类型,还比较数值.

5.++$var 和 $var++的区别
++$var: 前加操作,$val的值+1,表达式返回$val新值(增加1);前加意思就是先对变量+1,再返回该变量的值
$var++: 后加操作,$val的值+1,表达式返回$val原来的值;后加就是先返回变量的值,再对变量+1

字符串也可以递增/递减:
$a = ‘A‘;
echo $a++; // 输出 A
echo ++$a; // 输出 B

6.""和‘‘区别
"":替换变量,进行转义
‘‘:不对变量进行替换,仅对\‘转义和在单引号前面的\\进行转义

7.include和require
include:如果包含文件或URL不存在,仅发出一个警告,不会终止程序运行;
require:如果包含文件或URL不存在,停止程序运行;

除此外,两者再无区别;

8.global
global $val1, $val2...;
不建议使用,运行时造成赋值混乱,不支持unset()等.

9.通过引用返回值:
在函数名前加&,将返回变量的地址;而不是变量的拷贝.

<?phpfunction & getNum($name) {return $GLOBALS[$name];}$num = 100;$val = & getNum(‘num‘); // 返回了$num的地址print $val;$num = 500; // $num的更改,引起了$val的更改,因为$val通过引用指向了$num的地址.echo ‘<br>‘;echo $val;?>

  

输出:
100
500

不经常用到,如果使用,请小心使用.

10.按值传递和按引用传递:
使用按值传递还是按引用传递,是在函数定义的时候设置,而不是在调用的时候设置.

function func(&$val) {.......}func(100);

  

11.静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果。

12.因为构造函数不能产生返回值,从构造函数内产生错误最常用的做法是抛出一个异常.

13.php并不能保证析构函数调用的准确时间点.

14.接口是可以包含常量的

<?phpinterface Log{const LOG_NAME = ‘log‘;public function log();}class Dog implements Log{public function log(){echo Log::LOG_NAME . ‘:‘ . date(‘Y-m-d‘);}}$dog = new Dog();$dog->log();

  


15.接口可以多重继承,接口也可以继承接口.

16.异常就是异常,异常应该被用来处理问题,而不是控制流程

17.可以设置参数类型:

function func(MyClass $obj) {....}

  

18.call 和 call_user_function_array()

<?phpclass Hello{public function say(){echo ‘hello world‘;}}class HelloDelegator{private $obj;public function __construct(){$this->obj = new Hello();}public function __call($method, $args){return call_user_func_array(array($this->obj, $method), $args);}}$hello = new HelloDelegator();$hello->say();

  

19.__autoload和spl_autoload_registe:自动注册类文件

20.ArrayAccess接口:用数组的方式访问对象

代码示例:

class User implements ArrayAccess{private $users;// 是否存在public function offsetExists($offset){return isset($this->users[$offset]);}// 取值public function offsetGet($offset){return $this->users[$offset];}// 赋值public function offsetSet($offset, $value){return $this->users[$offset] = $value;}public function offsetUnset($offset){unset($this->users[$offset]);}}$user = new User();if (isset($user[‘100‘])) {echo ‘no set‘;} else {$user[‘100‘] = ‘hello‘;}echo $user[‘100‘];unset($user[‘100‘]);

  

20.settype(&val, type) // 通用类型转换

<?php$a = ‘100‘;settype($a, ‘int‘);echo $a;

  

21.在session被修改或赋值后,为防止session被锁,应该使用session_write_close()关闭session文件.

22.DirectoryIterator:文件夹遍历

<?php$files = new DirectoryIterator(‘c:/‘);foreach ($files as $f) {echo $f . "\n";}23.proc_open与进程交互:<?php$fin = fopen(‘code.php‘, ‘r‘);$fou = fopen(‘a.php‘, ‘w‘);$desc = array(0 => $fin, 1 => $fou);$res = proc_open(‘php‘, $desc, $pipe);if ($res) {proc_close($res);}// 执行 php code.php 并将其结果写入a.php<?php$fou = fopen(‘a.php‘, ‘w‘);$desc = array(1 => $fou);$res = proc_open(‘ping www.baidu.com‘, $desc, $pipe);if ($res) {proc_close($res);}//执行ping,将结果写入a.php

  

24.正则表达式定界符可以用|和@

php权威编程有趣部分

原文地址:http://www.cnblogs.com/itfenqing/p/7707402.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved