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,當然是錯的!
?
轉載于:https://www.cnblogs.com/futan/archive/2012/12/04/php_basic.html
總結
以上是生活随笔為你收集整理的php基础语法知识笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]localCache与集中式cac
- 下一篇: java远程debug