PHP基础复习

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言PHP是将程序嵌入到HTML标准通用标记语言下的一个应用)文档中去执行,基于Zend引擎,常用来开发HTML,也可以生成XML文本

PHP四种标签:<?php  XML风格 ?>   <? 短标签(要配置) ?><?=   ?>   <%  ASP格式 %>  <script  language='php'>脚本风格</scritp>

&$MyVar:变量的引用

例子:define("count",10);$MyArray[10]=10;$MyArray[]=11;$MyArray['count']=count;$MyArray[count]=20;print_r($MyArray);

结果:[10]=>20,[11]=>11,[count]=>count;

证明:数组会默认从最大下标自动递增,带引号的常量名为字符。

print()是函数可以嵌套到语句中使用,echo()是语法不可以嵌套语句中使用  echo $Var=print($var).'<br>';

print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。

$abce=10;
//echo "abcd$abced";//错误
echo "abcd$abce*d";//自动解析$符号后面的所有字母数字下划线可以用其他符号分割
echo "abcd{$abce}d";//可以用括号分割
${'myvar'}=1;//等价于$myvar=1;
echo $myvar;
$b=10;
echo decbin($b);//1010 //decbin ( int $number ) : string;返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。
$a=4;
echo '<br>'.$c=$b<<$a;//左移位,小数点向右移动顺序补0  //右移相反   m/2的n次方
echo '<br>'.decbin($c);//10100000
$strArray='abcdefg123456';
for($i=0;$i<strlen($strArray);$i++) //strlen ( string $string ) : int;返回给定的字符串 string 的长度。
{
    echo $strArray[rand(0,strlen($strArray)-1)].'<br>';//字符串可以当数组读取
}
$_GET['c']=25;
function add($c,$d=25)
{
    global $e;  //在函数中使用全局变量
    return $c+$d-$_GET['c']-$e;
}
$e=10;
echo add(5);//实参不够使用默认参数值,不给默认值会默认为0
function myfunction($a,$b=true)
{
    if($a&&!$b)
    {
        echo "hello!";
    }
}
$s=array(0=>'my',1=>'call',2=>'$function',3=>' ',4=>'function',5=>'$a',6=>'$b',7=>'a',8=>'b',9=>'');
$a=true;
$b=false;
echo $b;//假输出不了
$name=$s[0].$s[4].$s[9].$s[9].$s[9];//myfunction   //空字符串不站位置
echo $name.'<br>';
echo $s[7].' '.$s[8].'<br>';
$name(${$s[7]},${$s[8]}); //a,b //${''}会转义里面的变量

require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行。

===只在两者的数据类型和值都相同时才返回 True

$a=4;
//echo $a+=$a+$a;//$a*3
//echo pow($a,2);//$a*$a
echo $a<<=2; //$a*4

exit ([ string $status ] ) : void ;     输出一个消息并且退出当前脚本

通过$_SESSION访问会话变量(session)

/**********************web中的php*******************/

浏览器不允许来自某个域名的HTTP事务更改另一个域名下的cookie,否则这将造成严重的的安全问题。
 

$_REQUEST 默认情况下包含了 $_GET$_POST 和 $_COOKIE 的数组。

htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset")[, bool $double_encode = true ]]] ) : string      本函数各方面都和 htmlspecialchars() 一样, 除了 htmlentities() 会转换所有具有 HTML 实体的字符。如果要解码(反向操作),可以使用 html_entity_decode()

Cookie不设置失效时间会在浏览器关闭时自动失效

method 方法规定如何发送表单数据(form-data)(表单数据会被发送到在 action 属性中规定的页面中)。表单数据可被作为 URL 变量的形式来发送(method="get")或者作为 HTTP post 事务的形式来发送(method="post")。

<?php
//echo $_POST['text'][0];
?>
<!--<form method="post">
    <input type="text" name="text[]">
    <input type="text" name="text[]">
    <input type="submit" value="tjiao">
</form>-->

HTTPS传输发生时,浏览器与服务端立刻完成加密机制的握手,之后的数据都是加密传输而不是明文传输——包括URL,查询字串。而在HTTP传输中,它们都是明文传输的

对于收到的查询字串和POST信息,PHP只是简单的把元素添加进对应的超级变量数组中。结果就是如果有两个元素同名,前一个会被后一个覆盖。

$arraystr=array(0=>2,1=>2);
setcookie('str',implode($arraystr));//implode ( string $glue , array $pieces ) : string;用 glue 将一维数组的值连接为一个字符串。
echo $_COOKIE['str'];
ob_clean();//ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] ) : bool;打开输出缓冲,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。
for($i=0;$i<10;$i++)
{
    echo $i;
}
$coutput=ob_get_contents();//ob_get_contents ( void ) : string;返回输出缓冲区的内容
ob_end_clean();//ob_end_clean ( void ) : bool;清空(擦除)缓冲区并关闭输出缓冲
echo $coutput;

默认情况下,PHP把所有会话信息存储在/tmp文件夹中;在没有这个文件夹的操作系统中(比如Windows),必须在php.ini中给session.save_path设置一个合适的位置(如c:\Temp)

session会话默认在session.gc_maxlifetime 设置的时间过了后自动销毁

echo nl2br("abckdfg\nhiljl");//nl2br ( string $string [, bool $is_xhtml = TRUE ] ) : string;在字符串 string 所有新行之前插入 '<br />' 或 '<br>',并返回。

/*****************************数组*******************************************************/

键名为整数的为索引数组,键名为字符的为关联数组

$mu=array('red','green',42=>'blue','yellow'=>array('apple',9=>'pear','banana','orange'=>array('dog','cat','iguana')));
echo $mu['yellow']['orange'][1];数组数字索引默认在前面最大标签上增加
$array=array(1,1);
foreach($array as $k=>&$v)  //可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
{
    $v=2;
}
print_r($array);

$ary=array('o','l','m');
echo serialize($ary);//string serialize ( mixed $value );函数用于序列化对象或数组,并返回一个字符串。
$arc=array('a','b','c');
print_r($arc);
//array_flip($arc);//array_flip ( array $array ) : array;返回一个反转后的 array
//print_r($arc);
$acb=array_reverse($arc);//array_reverse ( array $array [, bool $preserve_keys = FALSE ] ) : array;返回一个单元为相反顺序的新数组。
print_r($acb);
$arr=array(0.1=>1,2);
echo count(print_r($arr));  //1   count(array,mode);函数返回数组中元素的数目。数组键值只有整数和字符
print_r($arr);
$array=array(1,2,3);
array_intersect($array,$array);//array_intersect ( array $array1 , array $array2 [, array $... ] ) : array;计算数组的交集
echo array_sum($array);//array_sum ( array $array ) : number;对数组中所有值求和返回结果。
array_count_values($array);//array_count_values ( array $array ) : array;函数用于统计数组中所有值出现的次数。
$ary=array(true=>'w',0=>2);//true会转换为1
var_dump($ary);
$str='';
$arr=array('a','b','c');
function wal($var)
{
    global $str;
    $str.=$var;
}
array_walk($arr,'wal');//array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) : bool;使用用户自定义函数对数组中的每个元素做回调处理
echo $str;
/***********有点意思的题**************/
$array=array(1,2,3,5,8,13,21,34,55);
$sum=0;
for($i=0;$i<5;$i++)
{
    echo '下标'.$array[$i].' 值'.$array[$array[$i]].'<br>';
    $sum+=$array[$array[$i]];
}
echo $sum;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值