标签:bin 重用 命名 划线 返回值 授权 冗余 逗号 item
1、双引号和单引号的区别?
双引号解释变量,单引号不解释变量;
双引号里插入单引号,其中单引号里如果有变量的话,变量解释;
双引号解释转义字符,单引号不解释转义字符,但是解释‘\和\\;
单引号的效率比双引号要高(因为双引号要先遍历一遍,判断里面有没有变量,然后再进行操作,而单引号则不需要判断);
双引号的变量名后面必须要有一个非数字、字母、下划线的特殊字符,或者用讲变量括起来,否则会将变量名后面的部分当做一个整体,引起语法错误。
GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。
PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
get提交的参数在url中可见,相对于post安全性低;
get传输的数量小(受浏览器限制,不用浏览器最大长度不同),post传值大小可以在php.ini中进行设置;
get一般用于从服务器获取数据,post一般用于向服务器提交数据;
get的执行效率比post高。
(1)echo与print区别
echo、print为结构语言,echo()、print()为函数;
echo 输出一个以上的字符串(中间以逗号隔开),print 只能输出一个字符串;
echo 没有返回值,print有返回值;
echo 效率比print高。
(2)echo、print、print_r()、var_dump()区别
require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行
include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去
包含文件不存在或者语法错误的时候,require是致命的,而include不是
由模型、视图、控制器完成的应用程序,由模型发出要实现的功能到控制器,控制器接收组织功能传递给视
优点:①可以实现代码的重用性,避免产生代码冗余;②M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式
常见的HTTP状态码:
HTTP状态码分类:
————————————————————————————————————————————————————————————————————————————————
7、php5的魔术变量与魔术方法?
(1)魔术方法
1、__construct() :实例化对象时自动调用。
2、__destruct() :销毁对象或脚本执行结束时自动调用。
3、__call() :调用对象不存在得方法时执行此函数。
4、__get() :获取对象不存在的属性时执行此函数。
5、__set() :设置对象不存在的属性时执行此函数。
6、__isset() : 检测对象的某个属性是否存在时执行此函数。
7、__unset() :销毁对象的某个属性时执行此函数。
8、__toString() :将对象当作字符串输出时执行此函数。
9、__clone() :克隆对象时执行此函数。
10、__autoload() :实例化对象时,当类不存在时,执行此函数自动加载类。
11、__sleep() :serialize之前被调用,可以指定要序列化的对象属性。
12、__wakeup :unserialize之前被调用,可以执行对象的初始化工作。
13、__set_state() :调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
14、__invoke() :将对象当作函数来使用时执行此方法,通常不推荐这样做。
(2)魔术常量
1、__line__ :文件中的当前行号。
2、__file__ :文件的完整路径和文件名。
3、__dir__ :文件所在的目录。
4、 __function__ :函数名称(php 4.3.0新加)。自php5起本常量返回该函数被定义时的名字(区分大小写)。
5、__class__ :类的名字(php 4.3.0新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。
6、__namespace__ :当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
7、__trait__ :Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
8、__method__ :类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
客户端:$_SERVER["REMOTE_ADDR"];或者getenv(‘REMOTE_ADDR‘)
ip2long进行转换
服务器端:$_SERVER["SERVER_ADDR"];
或者gethostbyname(‘www.baidu.com‘)
9、<?php echo count(strlen(“http://php.net”));?>的执行结果
输出 1
讲解:count(var)是用来统计数组或对象的元素个数的。当var是null或者空数组时,结果为0。如果var是普通变量,则返回1。正常情况下返回var中的元素或属性个数。
10、使用list()函数需要注意什么?
list()是一个语法结构。List($array)是用来快速把数组中的元素赋给一些变量。使用时要注意,$array必须为一个索引数组,并且索引值从0开始。
用法:
$arr = array(‘23‘,‘1‘,‘30‘,‘12‘,‘5‘);
list($a,,$b) = $arr;
echo ‘$a:‘.$a.‘;$b:‘.$b;
输出结果:$a:23;$b:30
传值
是把实参的值赋值给行参
那么对行参的修改,不会影响实参的值
传地址
是传值的一种特殊方式,只是他传递的是地址,不是普通的如int
那么传地址以后,实参和行参都指向同一个对象
传引用
真正的以地址的方式传递参数
传递以后,行参和实参都是同一个对象,只是他们名字不同而已
对行参的修改将影响实参的值
$a = "123";
$b = &$a;//引用赋值(在源变量前加&符号)
echo $a."-".$b; // 输出:123-123
echo "<br/>";
$b = "456465"; // 输出:456465-456465
echo $a."-".$b;
// 结论 :
// PHP 传引用时 形参 发声改变的时候 实参也发生改变;
传值,就是仅将对象的值传递给目标对象,就相当于copy;系统将为目标对象重新开辟一个完全相同的内存空间。
传引用,就是将对象在内存中的地址传递给目标对象,就相当于使目标对象和原始对象对应同一个内存存储空间。此时,如果对目标对象进行修改,内存中的数据也会改变。
对象默认是传引用 对于较大是的数据,传引用比较好,这样可以节省内存的开销
12、如何命令下运行PHP脚本(两种方式),如何向PHP脚本传递参数?
(1)运行PHP脚本
方法一:先进入php安装目录,执行 php 路径/文件名.php。
例:php my_script.php php -f "my_script.php"
方法二:php -r “php脚本”;(不需要加php的开始符和结束符)。
例:php -r "print_r(get_defined_constants());"
(2)向php脚本传递参数:
方法一:使用$argv or $argc参数接收
php脚本:
<?php
echo "接收到{$argc}个参数";
print_r($argv);
执行:
[root@DELL113 lee]# /usr/local/php/bin/php test.php
接收到1个参数Array
(
[0] => test.php
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d
接收到5个参数Array
(
[0] => test.php
[1] => a
[2] => b
[3] => c
[4] => d
)
方法二:使用getopt函数
php脚本:
<?php
$param_arr = getopt(‘a:b:‘);
print_r($param_arr);
执行:
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345
Array
(
[a] => 345
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3
Array
(
[a] => 345
[b] => 12q3
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3 -e 3322ff
Array
(
[a] => 345
[b] => 12q3
)
什么是魔术引号
waring:本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
魔术引号是一个将自动将进入PHP脚本的数据进行转义的过程,最好在编码时不要转义而在运行时根据需要而转义
当打开时,所有的 ‘(单引号),"(双引号),\(反斜线)和 NULL 字符都会被自动加上一个反斜线进行转义。这和 addslashes() 作用完全相同。
一共有三个魔术引号指令:
标签:bin 重用 命名 划线 返回值 授权 冗余 逗号 item
原文地址:https://www.cnblogs.com/North-South/p/8759034.html