燕十八

php中的注释、变量、常量

php中单引号与双引号的区别?

1. 由下可看出,双引号的变量是解析并输出,而单引号的变量不解析。
2.单引号的解析速度比双引号的快
3. 对于单引号来说,只有两个转义 \',\\
4. 除了上述两个转义字符,其他都原样输出。
5. 对于双引号来说,可转义字符除\\,\',\"之外,还有\t, \r , \n 等
6.除了单引号和双引号用来声明字符串变量外,还有heredoc方式
程序代码:

//$age = 22;
//$str1 = '他今年 $age 岁';  //''原样输出
//$str2 = "他今年 $age 岁";  //""要解析里面的变量 即输出22
//echo $str1,"<br />",$str2;

php中的注释

(一)   以//开始.

(二)  以#开始.
#这是shell单行注释风格

(三) 多行注释有一种以/*开始以     */结束

php中的注意事项

1.  在js中,一个语句如果单占一行的话,在行尾可以不加;号
2. 但是,在php加,必须每一行后面都要加分号
虽然在整个php的最后一句例外,但是强烈建议也加上

3 . 对于纯php页面,?>是可以不写的
而且,对于不直接运行,而是被别的页面所包含的文件,往往还推荐结束不加?>
这样包含的页面更快执行速度更快

php中的变量

(一)   php变量有8种
1). 
<1> 整型(1,11,21)
<2> 浮点型(32.32)
<3> 布尔型(true/false)
<4> 字符串型('hello word')
<5> NULL型(null)
<6> 数组型(array)
<7> 对象型
<8> 资源型    

2).   在js中,声明变量用var 变量名[= 值],在php中声明变量, $变量名=值; 
3).   php变量名是区分大小写的,意味着 $a,$A不是一个变量 
4).   在php中变量命名规范:(变量的名字由“字母”、下划线、数字、组合而成。并且数字不能开头)
5).   在php中,甚至可以用中文来做变量名,但是严重不推荐 如:
       //$姓名='刘备';
      //echo $姓名;
6).   echo 不是一个函数,是一种语法结构。用echo 可以把变量打印出来
7).   当用echo 要打印多个变量时,用 ','隔开(或者用'.'号来分隔)
8).   变量的传值          
9).   引用传值 和 赋值传值
10). 字符串 类型   11). header("Content-Type: text/html; charset=utf-8"),把网页编码变为我们想要的utf-8编码

(二)  动态变量           
(三) 变量的检测
(四) 变量类型判断
(五) 变量的销毁
(六) 变量的类型的获取  用gettype()
(七) 变量的传值方式


(八) 常量

1) 常量的引用
2) 常量的命名规则
3) 常量的特点
4) 常量的值
5) 常量的检测
6)  动态常量
7)常量的特点

(九)变量和常量的区别?
1. 它们的声明方式不同
2. 而常量一旦声明,不能改变其值
define('PI',3.14);
PI =3.23;语法错误
echo "<br />",PI;
3. 变量可以销毁,而常量一旦主义也不能销毁
unset($age);
var_dump($age);
4.常量是不能注销的
unset(PI); //语法错误,不允许注销
echo PI;
5. 变量有其作用域,函数内部默认情况访问不到外部的变量,
而常量,一旦定义,无论是在全局定义,还是在函数内部主义。
在页面的任意位置都可以访问到。

以上所有知识点的代码展示

  1  <?php
  2 header("Content-Type: text/html; charset=utf-8");
  3 //1. php的变量怎么声明,用$变量名 来声明
  4 
  5 //2. php变量的命名规范
  6 //变量名 是'字母,下滑线,数字的组合,并且数字不能开头'
  7 
  8 //4. php变量名是区分大小写的,意味着 $a,$A不是一个变量
  9 
 10 //6. 甚至可以用中文来做变量名,但是严重不推荐
 11 //$姓名='刘备';
 12 //echo $姓名;
 13 //--------------------------------------------
 14 //5. 8种变量类型
 15 1) 整型(1,11,21)
 16 2) 浮点型(32.32)
 17 3) 字符串('hello word')
 18 4) 布尔型(true/false)
 19 5) NULL型
 20 6) 数组(array)
 21 7) 资源型 22 
 23 //==========================================        
 24 /*
 25 1. 整型                                       返回原处
 26 对应数学中的整数
 27 1,2,3,4,5……
 28 0
 29 -1,-2,-3,-4……
 30 $age = 027;
 31 echo $age,'<br />';  //思考 打印结果,为什么 ??  答:27,027是八进制
 32 */
 33 //---------------------------------------------
 34 
 35 /*
 36 浮点型                                         返回原处                                   
 37 对应数学中的小数
 38 如:
 39 0.23
 40 33.2
 41 */
 42 $f1 = 0.23;
 43 echo $f1,'<br />';
 44 //可不可以把上面的浮点的型修改为整型值?
 45 //答:在php中,可以,php中可以修改变量的值与类型
 46 //在C语言中,下一行代码是不允许的。
 47 //$f1=88;
 48 
 49 //从数学上看
 50 //0.3-0.2==0.1
 51 //但
 52 //if((0.3-0.2) == 0.1){
 53 //    echo '0.3-0.2等于0.1';
 54 //}else{
 55 //    echo '0.3-0.2不等于0.1';
 56 //}打印什么?
 57 
 58 //---------------------------------------------
 59 //3.字符串,一串符,生活中常见,用单引号,或双引号包起来
 60                                                         返回原处
 61 $nsg = 'wait for you !';
 62 echo $nsg,'<br />';
 63 $nsg = "wait for you !";
 64 echo $nsg,'<br />';
 65 /*
 66 双引号,单引号有何区别?
 67 在课表上  有专门的章节,讲字符串部分会详解讲
 68 */
 69 
 70 //---------------------------------------------
 71 /*
 72 4. 布尔型                                   返回原处
 73 中有两个值,要么地真,要么假
 74 甚至通俗叫'真假型';
 75 */
 76 $isman = TRUE ;
 77 $iswoman =  false;
 78 echo var_dump($isman);
 79 echo var_dump($iswoman);
 80 //true false 不区分大小写
 81 //直接echo布尔型的时候,布尔型被转换成了字符中,分别是1,空字符串
 82 /****
 83 想完整的查看布尔型
 84 var_dump()函数
 85 
 86 echo 输出变量,适宜于 整型,浮点型,字符串型 ,这种标量类型
 87 print_r适合后面要学的对象,数组,这种二维或多给结构的数据
 88 var_dump ,不仅可以打印数据,还可以打出数据的类型
 89 ****/
 90 
 91 //-------------------------------------------
 92 //5.NULL型,这种类型,只有一个值,即NULL,意味着空
 93                                                               返回原处
 94 //我有一张银行卡,存1000,取1000元,账面还有0元
 95 //我说:我的账户 0元,这种情况整型的0,是一人整型值
 96 
 97 //李四,没有身份证,根本连银行卡都没有,这种情况,值是多少?值都没有
 98 //这种情况就是NULL
 99 
100 //-------------------------------------------
101 //$f; 来说 
102 /*
103 $f 先在变量名的一个表上有f
104 但是,f却没有指向地址,自然,也就'没有值'
105 
106 一个变量,什么时间为null
107 1. 给一个变量赋值为null,相当于银行账户取消,卡消磁
108 2. 某个变量,被nuset掉(unset是销毁一个变量)
109 3. 只声明, 不赋值,也为null
110 */
111 $user = null;//没有一个值
112 var_dump($user);
113 $class;
114 var_dump($class);
115 $u =34;
116 unset($u);  //把变变量名和变量值通通从内存中移除
117 var_dump($u);
118 //==========================================
119 /*
120 6. 动态变量                               返回原处
121 
122 动态变量 ,即  变量名,还可以是一个变量 
123 php的语法非常灵活 ,允许为时变量 的名字仍是一个变量 。
124 */
125 
126 $str = 'hello';
127 $hello = 'welcome to zixue.it';
128 
129 echo $str;   //  hello
130 echo $hello; //  welcome to zixue.it  
131 echo $$str;  //$str 的值是hello,hello又充当了下一个变量的名字,即最终显示$hello的值,,即welcome to zixue.it
132 //-------------------------------------------
133 
134 //$_GET地址栏,传值,可能有的同学还没碰到到
135 
136 $who = $_GET['who'];
137 $laoda = '刘备';
138 $laoliang = '关羽';
139 $laosan = '张飞';
140 echo $$who;
141 //==========================================
142 /*
143 7. 变量的检测                                  返回原处
144 
145 1. 在讲解NULL的过程,有些变量,根本就没有声明过,
146 或者是被UNSET掉了,再去引用变量的时候,提示一个NOTICE   
147 
148 问我能不能,在用这个剂型癇,先判断一下,这个变量是否存在,如果有再进一步操作。
149 答:可以,即 如何检测 一个变量 已存在。。
150 知识点:用isset来检验,,一个变量 是否存在。。
151 
152 */
153 $age = 3;
154 if(isset($age)){
155     echo 'age变量已经声明了';
156 }else{
157     echo '变量根本就不存在,';
158 
159 }
160 
161 //==========================================
162 /*
163 2. 变量类型判断                              返回原处
164 
165 */
166 $a = 121;//整型 
167 $b = 'sd'; //字符型 
168 $c =34.32;//浮点型 
169 $d = null;//NULL
170 $e = true;//布尔型 
171 
172 if(is_int($a)){
173     echo 'a是int型';
174 
175 }else{
176     echo 'a不是int型';
177 }
178 echo '<br />';
179 //--------------------------------------
180 if(is_string($b)){
181     echo 'b是string型';
182 
183 }else{
184     echo 'b不是string型';
185 }
186 echo '<br />';
187 //--------------------------------------
188 if(is_float($c)){
189     echo 'e是浮点型';
190 }else{
191     echo 'e不是浮点型';
192 }
193 echo '<br />';
194 //--------------------------------------
195 if(is_null($d)){
196     echo 'd是null型';
197 }else{
198     echo 'd不是null型';
199 }
200 echo '<br />';
201 //--------------------------------------
202 if(is_bool($e)){
203     echo 'e是布尔型';
204 }else{
205     echo 'a不是布尔型';
206 }
207 echo '<br />';
208 
209 //==========================================
210 /*
211 3. 变量的销毁 用unset()                    返回原处
212 
213 */
214 
215 if(isset($age)){
216     echo 'age变量已设置';
217 }else{
218     echo 'age变量未设置';
219 }
220 echo '<br />';
221 
222 $age = 22;
223 if(isset($age)){
224     echo 'age变量已设置';
225 }else{
226     echo 'age变量未设置';
227 }
228 echo '<br />';
229 
230 unset($age);
231 if(isset($age)){
232     echo 'age变量已设置';
233 }else{
234 echo 'age变量未设置';
235 }
236 //为什么要把变量销毁,
237 //因为内存空间是有限的,销毁变量,可以腾出
238 //拆迁是unset,拆掉的是旧房子,腾出的的地皮用来储存新值。
239 ////==========================================
240 /*
241 4. 变量的类型的获取  用gettype()               返回原处
242 */
243 $a = 121;//整型 
244 $b = 'sd'; //字符型 
245 $c =34.32;//浮点型 
246 $d = null;//NULL
247 $e = true;//布尔型 
248 echo gettype($a),'<br />';
249 echo gettype($b),'<br />';
250 echo gettype($c),'<br />';
251 echo gettype($d),'<br />';
252 echo gettype($e),'<br />';
253 //==========================================
254 /*
255 8. 变量的传值方式                       返回原处
256 
257 */
258 //  1.赋值传值
259 
260 $a = 3;
261 $b = 5;
262 //如果是新手,可能会对这个等号误会,这个等于号是赋值用的
263 $a = $b;
264 echo $a,'<br />',$b;
265 echo '<br />';
266 // $a = $b 发生的是:把$b的值,读出来,再把值放到$a的空间里去,即赋给$a
267 echo $b = 7;
268 echo '<br />';
269 echo $a,'<br />',$b;
270 //--------------------------------------
271 
272 //引用赋值
273 
274 $a = 3;
275 $b = 5;
276 $a = &$b;
277 //下面这一行,发生了:
278 //$a=&$b  把$a 这把钥匙的指向了$b的地址。
279 //即,$a,$b,指向同一个地址
280 //就像 ,两个钥匙,指向同一个房间,
281 echo $a,'<br />',$b,'<br />';
282 
283 $b = 9;
284 echo $a,'<br />',$b;
285 //--------------------------------------
286 $a = 3;
287 $b = 5;
288 $a = &$b;
289 unset($b);
290 echo $a,'<br />',$b;
291 
292 /*
293 原因很简单
294 因为有$a ,$b两个变量指向同一地址。
295 $b销毁了,$a没有销毁
296 变量有一个机制,当某地址存储的值,有一个变量 在指向他的时候,就不会被回收
297 */
298 //==========================================
299 
300 /*
301 9. 常量                      返回原处
302 
303 变量是可以随意赋值的
304 $pi这个很重要,被很多公式参考的一个变量。
305 结果,被其他开发人员给重新赋了值?影响了所有的公式
306 这时,怎么办?
307 
308 问题很明显:某个重要的值,如果赋给变量,容易被修改
309 解决办法:
310 想:如果某个变量,一旦定义,就不能修改,那就太好了
311 php有没有这种好使的东西?
312 
313 答:有常量,常量的值,不能修改。
314 
315 */
316 //--------------------------------------
317 //珠峰的高度是8846  
318 //定义常量的语法
319 //define('常量名','常量值')
320 //
321 //define('HEIGHT',8846);
322 //$height = 8846;
323 //echo HEIGHT;
324 /*
325 1. 常量的引用                   返回原处
326 
327 echo 常量名;  没有$符
328 
329 2. 常量的特点1,一旦定义,值不能被修改,不能重新赋值
330 //HEIGHT = 88888直接语法错误
331 
332 有同学想:既然不能用等号重新赋值。。
333 那么,能否用define,再定义一次
334 并且 ,定义一个新值
335 
336 3. 常量的特点2,一旦定义,也不能重复定义
337 刚才,虽然重新定义提示了一下,
338 但是,值到底有没有被改成88888呢。没有
339 
340 4. 常量的第3个重要特点,即"全局有效性",说白了,就页面任何一处都能访问到
341 这个特点需要结合函数才能体现
342 没有学过函数的同学,先不要着急,可以先记住这个特点
343 
344 */
345 
346 function t(){
347 echo HEIGHT,'<br />';
348 echo $height;
349 }
350 t();
351 
352 //函数,函数体内,变量有一个作用域的概念
353 //比方:整个页面是操场
354 //函数是操作内的一间小屋。
355 //操作上有一个人:张三
356 //php里的函数认为,在小屋里找张三,而且小屋里张三和操场上的张三不是同一个人
357 //函数有自己的一片小空间,有自己的变量范围
358 
359 //但,与之对比的是,常量,却正确的打印出来
360 //这就是我们所说,常量的‘穿透性’
361 
362 //常量一旦定义,在任何旮旯角落都能够访问到。
363 
364 //总结:
365 //为什么要常量
366 /*                      返回原处
367 因为有些重要的值,不希望被改变
368 常量的特点:
369 1. 一旦定义,不能重新赋值
370 2. 一旦定义,不能再次定义
371 3. 一旦定义,页面内任何角落都可以访问到,没有作用域的限制
372 
373 */
374 //--------------------------------------
375 /*
376 常量的命名规则
377 //1. 常量的命名规则和变量 一样
378 define('HEI',8846);
379 echo hei
380 //但是,习惯常量大写 
381 
382 
383 */
384 //define('HEI',8846);
385 //echo HEI;  //先找HEI常量的值,如果没有找到就当成字符串来输出 
386 /*
387 如果引用一个未曾定义的常量
388 因为没定义该常量,自不然找到值
389 最终会把常量名当成字符串来输出
390 //--------------------------------------
391 //2. 常量的值,有几种类型?           返回原处
392 变量的值,有8种类型
393 1. 有整型 
394 2. 浮点型
395 3. 字符串
396 4. 布尔型
397 5. NULL型
398 */
399 
400 //--------------------------------------
401 $hei = true;
402 define('HEI',true);  //布尔型 也可以赋给一个常量
403 var_dump($hei);
404 var_dump('<br />');
405 var_dump(HEI);
406 //--------------------------------------
407 $hei = null;
408 define('HEI',null);  //NULL也可以赋给一个常量
409 var_dump($hei);
410 var_dump('<br />');
411 var_dump(HEI);
412 
413 //--------------------------------------
414 $hei = array(1,2);
415 define('HEI',array(1,2));  //数组 不可以赋给一个常量
416 var_dump($hei);
417 var_dump('<br />');
418 var_dump(HEI);
419 //--------------------------------------
420 /**
421 这5种变量,可以赋成一个常量 
422 整型,浮点型,字符串,布尔型,NULL
423 这5种:称为标量
424 
425 其他三种:array ,abject ,resourse ,都不可以赋给一个常量 
426 
427 3. 常量的检测              返回原处
428 我们知道,一个变量是否已声明,可以检测到,用isset即可检测 
429 
430 
431 开发时,我想知道,某个常量有没有定义
432 如果还没定义,我就去定义
433 
434 怎么样判断一个常量是滞定义过呢、
435 用defined('常量名');即可检测
436 
437 
438 
439 */
440 
441 //if(defined('HEI')){
442 //    echo 'HEI常量已经定义过<br />';
443 //
444 //}else{
445 //echo 'HEI常量还没定义,我来定义<br />';
446 //define('HEI',8846);
447 //}
448 //
449 //if(defined('HEI')){
450 //    echo 'HEI常量已经定义<br />';
451 //
452 //}else{
453 //    echo 'HEI常量还没有定义<br />';
454 //    echo define('HEI',8846);
455 //}
456 
457 //==========================================
458 /*
   动态常量                                    返回原处
459 变量可以是动态的,即变量名还可以是一个变量。
460 
461 
462 */
463 //$who = $_GET['who'];//准备传 DA,LIANG,SAN
464 //define('DA','刘备');
465 //define('LIANG','关羽');
466 //define('SAN','张飞');
467 
468 //echo $who,'<br />';//DA
469 //echo DA;  //刘备
470 
471 //以$who = DA 为例、
472 //$who变量的值是DA,变量得到DA,打印DA,这没有错
473 //$who 问题是,我们想解析出$who的值,即DA,再把DA当成'常量的名'再解析一下,解析出常量的值来'
474 //想用动态常量的话,即想用变量的值当常量名的话,必须要靠constant函数才可以
475 //echo $who,'<br />';
476 //echo constant($who);//$who的值解析出来,例DA,content函数,再去解析DA对应的常量的值。
477 
478 //常量的命名规范
479 //1. 和变量一样
480 //2. 习惯上大写
481 //
482 //常量的值类型
483 //
484 //只能是标量,类型:整型,浮点型,字符串,布尔,NULL
485 //
486 //
487 //常量的检测
488 //defined('常量名')来体测 
489 //
490 //如果已定义,返回true
491 //如果未定义,返回false 
492 //
493 //动态常量
494 //动态常量,需要用constant函数来实现 
495 //constant($var),则会把$var的值,当成一个常量的名,并解析出常量的值
496 
497 //开发中,什么时间适合用常量
498 //
499 //比如:网站的根目录,D:/www/
500 //网站配置文件,不希望被更改,也可以写成常量 
501 
502 
503 /*
504 1. 赋值运算
505 2. 算术运算
506 
507 
508 
509 //==========================================

相关视频的播放地址:

 http://www.56.com/u90/v_ODUyNDAzOTk.html         变量概念及命名规范

http://www.56.com/u66/v_ODUyNTA1ODM.html         变量类型

http://www.56.com/u64/v_ODUyNTA2Njk.html           动态变量及变量类型检测

http://www.56.com/u68/v_ODUyNTA2NzM.html         传值赋值与引用赋值

 

 

posted @ 2012-11-16 04:55  启红  阅读(2485)  评论(0编辑  收藏  举报