PHP和MySQL开发の第一章 快速入门

第一章 快速入门

1.字符串的连接

  • 用一个字符串的内容来代替一个变量的操作就是插值(interpolation)。
  • 双引号("")中,变量名称将被变量值所替代;而在单引号('')中,变量名称,或者任何其他文本都会不仅修改而发送给浏览器。

2.变量于文本

  • 变量是表示数据的符号。字符串是数据本身。
  • 第三种制定字符串的方法:heredoc语法(<<<),通过指定一个用来结束字符串的结束标记,Heredoc语法允许指定长字符串。

3.理解标识符

  • 标识符是变量的名称。
  • 标识符可以是任何长度,而且可以由任何字母、数字、下划线组成;
  • 标识符不能以数字开始;
  • 在PHP中,标识符是区分大小写的;
  • 一个变量名称可以与一个函数名称相同;
  • 不能创建一个具有与已有函数同名的函数。

4.PHP的数据类型

  • 特定的内置函数(例如数据库函数)将返回resource类型的变量。它们都代表外部资源(例如数据库连接)
  • 基本上不能直接操作一个resource变量,但是通常它们都将被函数返回,而且必须具有作为参数传递给其他函数。

5.类型转换

  • 使用类型转换,可以将一个变量活值转换成另一个类型。
  • 只需在希望进行类型转换的变量之前的圆括号中插入需要转换的临时数据类型即可。
    • $totalqty=0; $totalamount=(float)$totalqty;
    • 解释:取出保存在$totalqty的值,并将其解释成一个浮点类型,并且将其保存在$totalamonut中。

6.声明和使用常量

  • 一个常量可以保存一个值,例如一个变量值,但是常量值一旦被设定后,在脚本的其他地方就不能再更改。
  • 用define函数定义常量。
    • 例如:define('OILPRICE',10);
  • 常量名称都是由大写字母组成的
  • 常量和变量之间的一个重要不同点在于引用一个常量的时候,它前面并没有$符号。
  • 常量可以自己定义,PHP还预定义了许多常量。可以通过后phpinfo()函数来了解。
  • 常量只可以保存布尔值(bool)、整数(int)、浮点数(float)或字符串(string)数据。

7.理解变量的作用域

  • 作用域是指在一个脚本中某个变量可以使用或可见的范围。
    • PHP有6项作用域规则
      • 内置超级全局变量可以在脚本的任何地方使用和可见;
      • 常量,一旦被声明,将可以在全局可见;也就是说,它们可以在函数内外使用;
      • 在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部;
      • 函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致;
      • 在函数内部创建冰杯声明为静态的变量无法再函数外部可见,但是可以在函数的多次执行过程中保持该值;
      • 在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。

8.前置递增递减(++$a和- -$a)和后置递增递减运算符($a++和$a- -)

  • 所有递增操作符都有两个功能:
    • 将变量增加1;
    • 增加后的值赋给原变量。
  • ++$a前置递增
    • 运行结果是:首先将变量$a加1,再将加1后的结果复制给原变量$a。
    • $a=4;
      echo ++$a;
      echo $a;
      -屏幕显示为:2 2
  • $a++后置递增
    • 运行结果是$a的值被返回并显示在屏幕上,然后,$a再加1。
      • $a=4;
        echo $a++;
        echo $a;
    • 屏幕显示为:1 2

9.引用操作符(&)

  • 通常来说(既在不使用&符号时),在将一个变量的值(a)赋给另一个变量(b)的时候,先产生原变量的一个副本,然后再将他保存在内存的其他地方。原变量(a)改变时,变量(b)并不跟着一起改变。
    • $a=4;
      $b=$a;
      $a=6;
      echo "a=".$a."<br />b=".$b;
    • 屏幕显示为:
  • 如果使用了引用操作符&则$b也会跟着$a进行更改。
    • $a=4;
      $b=&$a;
      echo "a=".$a."<br />b=".$b;
    • 屏幕显示为:
  • 所以引用操作符&就像一个别名,而不是一个指针。$a和$b都指向了内存中相同的地址。
  • 可以通过重置(unset($X))来改变所指向的地址。
    • unset($a);
    • 该重置不会改变$b的值,但是可以破坏$a和值7保存在内存中的连接。
    • 例如:
      • $a=4;
        $b=&$a;
        unset($a);
        echo "a=".$a."<br />b=".$b;
      • 屏幕会显示为:


        • notice的意思是未定义的变量a在第6行。

10.比较操作符

  • 恒等操作符(===)三个等于号,只有当恒等操作符两边的操作数相等并且具有相同的数据类型,其返回值才为true。

11.操作符优先级

  • 普通的圆括号是优先级最高的操作符。它的作用就是提高圆括号内部操作符的优先级;这样在需要的时候,就可以避开操作符的优先级法则。
    • 可以在一个表达式中使用任意个圆括号,最里层圆括号的表达式将最先计算。
  • 优先级从高到低
优先级从高到低

12.关于print和echo

  • print语言机构等价于echo语句。这两个结构都将生成输出;
  • print和echo都不是真正的函数,但是都可以用带有参数的函数形式进行调用;
  • print和echo都可以当作一个操作符:只要将要显示的字符串放置在echo或print关键字之后;
  • 以函数形式调用print将使其返回一个值(1);
  • print的速度要比echo慢。

13.关于gettype()和settype()

  • 要使用gettype()函数,必须先给它传递一个变量。它将确定变量的类型并返回一个包含类型名称的字符串;如果变量类型不是标准类型之一,该函数就会返回"unknown type"。

  • 要使用settype()函数,必须先给它传递一个要被改变类型的变量,以及一个包含了上述类型列表中某个类型的字符串。

  • $foo="5bar"; //string
    $bar=true; //bool
    settype($foo,"integer"); //integer
    settype($bar,"string"); //string
    echo gettype($foo)."<br />".gettype($bar);

  • 屏幕显示:


14.PHP的特定类型测试函数

  • is_array():检查变量是否是数组;
  • is_double()、is_float()、is_real():检查变量是否是浮点数;
  • is_long()、is_int()、is_integer():检查变量是否是整数;
  • is_string():检查变量是否是字符型;
  • is_bool():检查变量是否是布尔型;
  • is_object():检查变量是否是一个对象;
  • is_resource():检查变量是否是一个资源;
  • is_null():检查变量是否为null;
  • is_scalar():检查变量是否是标量,即一个整数、布尔值、字符串或浮点数;
  • is_numeric():检查该变量是否是任何类型的数字或数字字符串;
  • is_callable():检查变量是否是有效的函数名称。

15.测试变量状态

  • isset()函数:该函数需要一个变量名称作为参数,如果这个变量存在,则返回true,否则返回false;
    • bool isset(mixed var);[;mixed var[,...]])
  • unset()函数:该函数将销毁一个传进来的变量。
    • void unset(mixed var);[;mixed var[,...]])
      -empty()函数:该函数可以用来检查一个变量是否存在,以及它的值是否为非空或非0,相应的返回值为true或false。
    • bool empty(mixed var);

16.while循环

  • while循环语句只要其条件为真,就会不断重复执行代码块。
  • 当不知道所需的重复次数时,可以使用while循环语句。如果要求一个固定次数的重复,可以考虑使用for循环语句。

17.for循环

  • while循环和for循环是等价的,区别只是在于for循环更加紧凑。
  • foreach循环语句是专门用于数组的使用。

18.do...while循环

  • do....whild循环与while循环不同,因为它的测试条件放在整个语句块的最后;也就意味着do....while循环中的语句或语句块至少会执行一次。

19.关于跳出

  • 如果希望终止一个循环,可以使用break语句。使用了break语句后,脚本就会从循环体后面的第一条语句处开始执行。
  • 如果希望跳到下一次循环,可以使用continue语句。
  • 如果希望结束整个PHP脚本的执行,可以使用exit语句。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容