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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php __FILE__和$_SERVER['SCRIPT_FILENAME']区别

假设有a.php和b.php2个文件&#xff0c;分别位于E:/wamp/www/Text/ a.php echo $_SERVER[SCRIPT_FILENAME].<br/>; echo __FILE__; 执行a.php 得到的是 E:/wamp/www/Text/a.php ($_SERVER[SCRIPT_FILENAME]) E:\wamp\www\Text\a.php (__FILE__) b.php require a.…

boost asio io_context 没任务不退出

boost::asio::io_context ioc; auto work(boost::asio::make_work_guard(ioc)); //没用任务时&#xff0c;run 不退出

git中reset与revert的区别

1:最本质的区别:reset 回滚后&#xff0c;不会生成任何commit点(也就是提交哈希值),而revert回滚后回生成commit点 2:reset 命令参数包括&#xff1a;soft hard mixed 三个回滚方式

论文总结2

基于内容的网页特征提取 2001 使用专业网络爬虫获取网页&#xff0c;巨量网页数据保存在分布式的LDAP (轻量级目录服务协议)目录服务器中, 通过轻量级目录服务协议维护管理。分词词典通过提取过滤很多相关领域网页生成&#xff0c;手动更新。特征提取&#xff1a;正文分词然后计…

安裝jpeg-6b png error错误解决方法

默认安裝jpeg-6b shell> wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b ./configure –-prefix/usr/local/jpeg6 –enable-shared –enable-static make make install 指定安装目录方式安装jpeg-6b 如果你选择默认安装…

c++11特性move和forward区别

1:move属于强转,左值变右值 2:forward左值变左值&#xff0c;右值变右值(不是强转)

碎语

悠悠大道&#xff0c;莫衷一是。也许&#xff0c;看到的不是真相&#xff0c;听到的&#xff0c;反而是实言。匆匆的人流&#xff0c;滚滚的气息。得不到的一直在强求&#xff0c;在身边的故意不理睬。千篇一律的重复着早中晚&#xff0c;行尸走肉地上演着你我他。了却不断的红…

linux 进程重启脚本

pid(ps aux | grep 进程名 | grep -v grep | awk {print $2}) if [ ! -n "$pid" ] then echo 进程名 process not found. else kill -9 $pid echo 进程名 process[$pid] be killed. fi chmod 777 ./进程名 rm -rf *.log nohup ./进程名 > log.log 2>…

MongoDB与其他数据库的对比

本文转载自&#xff1a;http://book.2cto.com/201211/7897.html 市面上的数据库数量成爆炸式增长&#xff0c;要在它们之间进行权衡是很困难的。幸运的是&#xff0c;它们之中的大多数数据库都能归在几个分类里。本节中&#xff0c;我会描述简单及复杂的键值存储、关系型数据库…

【学习生活杂谈】学习记录

hadoop学习汇总&#xff1a;Hadoop官方的中文文档http://hadoop.apache.org/common/docsHadoop学习资料 -- 这里面总结了很多的东西&#xff0c;值得一一细看http://cloud21.javaeye.com/blog/607175关于Hadoop的两本书 -- 有电子书下载http://caibinbupt.javaeye.com/blog/418…

hadoop和kerberos的整合总结

由于手上负责的hadoop集群需要对公司外部提供服务&#xff0c;所有会有多个部门访问我们的hadoop集群&#xff0c;这个就涉及到了hadoop的安全性。 而hadoop的安全性是很弱的&#xff0c;只提供类似linux文件系统的帐户权限验证&#xff0c;而且可以通过简单的手段冒充用户名&a…

linux系统用户迁移

今天登陆上来发现好久都没有写博客了。 刚刚做了一个linux用户迁移&#xff0c;记录下&#xff0c;以后用到的话&#xff0c;查起来方便。希望对大家有帮助。 环境&#xff1a;我们原先的一台服务器由于过保所以替换新的服务器&#xff0c;但是由于用户数较多&#xff0c;如果一…

vm虚拟远程部署windows驱动

注意打印机是用com1端口&#xff0c;应该提前删除 bcdedit /debug on bcdedit /dbgsettings serial debugport:1 baudrate:115200 bcdedit /dbgsettings 以下两条是配置调式环境系统用 bcdedit /set testsigning on bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS 在…

Android:SharedPreferences详解+示例

为什么80%的码农都做不了架构师&#xff1f;>>> 一、简介SharedPreferences是一种轻型的数据存储方式&#xff0c;它的本质是基于XML文件存储key-value键值对数据&#xff0c;通常用来存储一些简单的配置信息。 二、存储位置 在/data/data/<包名>/shared_pre…

类模板的分离式编译错误解决

声明&#xff1a;不谈逻辑是否能被执行成功&#xff0c;就谈编译是否成功. vs的错误: linux下g的错误: 以上错误&#xff0c;改怎么解决呢&#xff1f; 方法1&#xff1a;把实现代码和头文件写在一起 方法2&#xff1a;在.cpp文件中加入模板声明

6421B Lab5 路由和远程访问的配置与故障排除

共2个实验&#xff1a; 实验L5A&#xff1a;配置和管理网络访问 实验L5B&#xff1a;实现DirectAccess&#xff08;略&#xff09; 实验L5A&#xff1a;配置和管理网络访问 共有3个练习 练习1&#xff1a;实现***远程访问解决方案。 练习2&#xff1a;配置一个自定义的网络策略…

c++导出标准win32格式的dll

__declspec(dllexport) unsigned long long __stdcall 函数名(参数列表); 恭喜您&#xff0c;你导出来之后&#xff0c;对方无法调用 然后加入*.def文件 *.def文件内容&#xff1a; LIBRARY EXPORTS 函数名

沫沫金:收集Hibernate使用过程中的小技巧(不断更新)

[2012-12-12] *设置javabean中string字符串的数据库长度 Column(length1000) private String content; [2013-03-22 礼拜五] *保存日期yyyy-MM-dd格式 Temporal(TemporalType.DATE) private Date day; 转载于:https://blog.51cto.com/zl0828/1086585

c++跨平台写法

#if __cplusplus > 201703L || (defined _MSC_VER && _MSC_VER > 1900) #include <string_view> #else #include <boost/utility/string_view.hpp> #include <boost/functional/hash.hpp> #endif

工作中影响提高的一些想法

2019独角兽企业重金招聘Python工程师标准>>> 最近&#xff0c;一直很迷茫&#xff0c;老是觉得效率低下&#xff0c;慢慢发现是自己做事的方式有问题&#xff0c;首先觉得人懒&#xff0c;喜欢动手却不愿意去想&#xff0c;觉得慢慢做过去&#xff0c;问题就解决了&…