付潭

淡泊高远,方圆之道。 助人扶危,处世之本。 修身养性,长乐之方。 好学勤勉,成就之功。

导航

php基础语法知识笔记(一)

共享一份我自己学习php基础语法知识的笔记,这是第一弹,明天共享第二弹。

1.判断php短标记<??>是否适用,查看php配置文件php.ini中的"short_open_tag = On"
2.官方的标记<?php?>  , <script language="php"></script>
3.单行注释 //或者#  
 /*
  多行注释
 */
4.变量  $str   字母数字下划线 ,数字不能作为开头,大小写敏感,尽量用有意义的英文。
5.注销变量函数 unset($str)  检查变量是否被定义 isset($str)
6.可变变量
$a = 'ok';
$ok = 123;

echo $$a; //可变变量 输出123
7.  连接符.
$str = 'world';
echo 'hello'.$str;
8.转义字符 \
$str="a'b\"c";
9.数组
$arr = array(34,6,9=>7,'abc','name'=>'付潭');

print_r( $arr );   //print_r() 用于输出数组,而不是用echo
输出结果:
Array ( [0] => 34 [1] => 6 [9] => 7 [10] => abc [name] => 付潭 )

10.数字
$str = 1;
echo 'asd'+1;   // 1
echo '1'+1;    //2

11.单引号 与 双引号的区别
$str = '你好';  
echo '$str';        //$str
echo '<br />';
echo "$str";        //你好  双引号 可以解析变量以及特殊字符"\n","\t"等等

$str1 = '你好\n是我';
$str2 = "你好\n是我";         // "\n" 属于特殊字符(换行),因此双引号可以解析
$str3 = "你好\t是我";
echo $str1;
echo $str2;
echo $str3;

字符串中没有变量的时候 ,尽量使用单引号。
有变量的时候使用双引号。
$s = 'nihao';
echo $s.'某某';
echo "{$s} 某某";
"贪婪模式" 解析变量直到不符合命名规则的字符
\ 转义字符 将变量转成普通的字符串

$ok = '你好';
echo "$okk";        //输出为空,贪婪模式
echo "{$ok}k";        //输出“你好k”
echo "$ok k";        //输出“你好 k”
echo "\$ok k";        //输出“$ok k”,转义字符
echo "$ok'k";        //输出“你好'k”
echo $ok."k";        //输出“你好k”

变量可以包含中文


12.自定义字符串
echo '<img src="images/tupian.jpg" width=\'200\' />';
$str = "tupian.jpg";
echo '<img src="images/'.$str.'" width=\'200\' />'
//自定义字符串,标准格式
echo <<< ABC
    <img src="images/$str" width='200' />            //中间当做 HTML区域 ,变量可以直接写  
ABC;
第一行要顶格写
第一行要独占一行,后面不能跟任何东西(包括注释和空格)
最好一行也要顶格和独占一行


13.错误输出
error_reporting(E_ALL | ERROR | PARSE | WARNING | NOTICE );

//在网页中加入报错程序代码

14.常量与变量
a.常量一般用大写,变量一般用小写。
b.常量一般不加$,而变量一定要加$。
c.常量在函数内部直接就有效,不需要声明为全局变量。
同一个常量不能声明两次

15.变量的作用域
函数内部与外部没有联系。

$str = 12;

function test()
{    
    //声明全局变量,必须写在函数内部,外面是没有用的,而且是一次性有效。
    global $str;
    echo $str;
    $str = 11;
}
test();   //12

function test2()
{
    echo $str;
}
echo $str; //11

test2(); //不输出

声明静态变量
function test()

{
    static $a=0;    //声明为 静态变量 ,只在函数中运行一次,局部变量,只在函数内部有效
    echo $a;    
    $a++;
}
test();        //0

test();        //1

test();        //2

echo $a;    //输出空


16.连接符.
echo '12' , $str , '23';  //在echo中 ,","要比"."更有效率,echo是唯一可以用逗号当做连接符的

17.输出
$a = array(2,57,8,9);
echo $a;        //Array,可以同时输出多个字符串
print $a;          //Array,只能输出一个字符串
print_r($a);        //Array ( [0] => 2 [1] => 57 [2] => 8 [3] => 9 )

18.引用
@ include('../inc/header.php');        //继续运行,警告,@号不提示报错,
require('header.php');            //终止程序,报错
header.php直接复制需要引用的代码,文件中不需要再写头部声明文件等。
被引用的文件作用域相通,可以直接引用里面声明的变量。

19.变量可以定义两次(后者覆盖前者),而函数不能。
要注意引用的文件include('yinyong.php')/require('yinyong.php');不能与现有的函数有相同的。
php5中,两个引用语句如果引用相同文件,会默认为一个。但是为保证兼容,不能写重复。

20.include_once('header.php');/require_once('footer.php');只包含一次,会自动判断有没有引用相同的文件。但影响执行效率。

21.__FILE__,内置常量
echo __FILE__;            //输出文件的物理地址,F:\php\www\php_basic.php 只认代码写入的页面,不管是否被引用。
echo dirname(__FILE__);        //输出文件目录,不包括文件名,F:\php\www
include( dirname(__FILE__).'/../php_basic.php');    // 利用dirname()输出文件地址,'/../php_basic.php'则代表当前目录的上一级目录中的php_basic.php文件。这是用的是正斜杠“/”,而不是因为地址栏上显示的反斜杠“\”,因为只有windows可以识别,正斜杠可以兼容windows和linux系统。

如果文件被其他文件引用,include和require语句就必须写成这种形式。

“../”适合于简单的一个文件包含于另一个文件。
而dirname(__FILE__) 大多适合多层,更复杂多多文件包含,维护起来更容易。

如果仅仅是a.php文件包含b.php文件,可以直接用 include的dirname(__FILE__)或者   “../”  均可,一般不会出错的。
但往往是 a包含了 b文件,另外c.php包含了a文件
那么使用  “../”  的话,就会造成c包含a时再载入b文件时路径出错,而使用dirname(__FILE__)时,c包含a时会以dirname(__FILE__)映射出c和a的路径关系,a再到包含b文件时,使用dirname(__FILE__),会映射出a和b的相应目录关系。这个就不会造成不同目录多次包含时路径出错!

注意: __FILE__,代表 这个代码所在文件的文件名, 比如 c用dirname(__FILE__)包含a(此时就是c引用a时使用的是绝对路径),那么 __FILE__代码是c文件的绝对路径名,而c包含a后,a再用dirname(__FILE__)包含b时,那么__FILE__在执行时就是a文件的绝对路径名,这个依次类推,当c在调用时,通过绝对路径找到a文件,a 文件又通过绝对路径找到b。这样的包含及路径永远也不会出错!

如果只是使用“../”  的话,c在调用时通过相对路径找到a,这里没有错,但是此时a里面包含b的也是使用“../”,此时是相对于c 的相对路径查找b,当然是错的!

 

posted on 2012-12-04 14:28  付潭  阅读(373)  评论(0编辑  收藏  举报