⑴ php是什么类型的文件,该如何使用
PHP,即“PHP: Hypertext Preprocessor”,是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,Java 和 Perl,而且容易学习。该语言的主要目标是让 Web 开发人员快速的书写动态生成的网页.
PHP 代码是运行在服务端的.
它的使用需要你的服务器安装php服务.
PHP 能做什么?
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此您可以用 PHP 来完成任何其它的 CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收 Cookies。但 PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域。
服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作您需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、WEB 服务器和 WEB 浏览器。您需要在运行 WEB 服务器时,安装并配置 PHP,然后,可以用 WEB 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。请查阅“安装”一章以获取更多信息。
命令行脚本。您可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,您仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅“PHP 的命令行模式”以获取更多信息。
编写客户端的 GUI 应用程序。对于基于窗口式的应用程序来说,PHP 或许不是一种最好的语言,但是如果您非常精通 PHP,并且希望在您的客户端应用程序中使用 PHP 的一些高级特性,您可以利用 PHP-GTK 来编写这些程序。用这种方法,您还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。如果您对 PHP-GTK 感兴趣,请访问其网站以获取更多信息。
PHP 能够用在所有的主流操作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 WEB 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
综上所述,使用 PHP,您可以自由地选择操作系统和 WEB 服务器。同时,您还可以在开发时选择使用面对过程和面对对象,或者两者混和的方式来开发。尽管 PHP 目前的版本还没有支持 OOP 所有的标准,但很多代码仓库和大型的应用程序(包括 PEAR 库)仅使用 OOP 代码来开发。
使用 PHP,您并不局限于输出 HTML。PHP 还能被用来动态输出图像、PDF 文件甚至 Flash 动画(使用 libswf 和 Ming)。您还能够非常简便的输出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能够自动生成这些文件,在服务端开辟出一块动态内容的缓存,可以直接把它们打印出来,或者将它们存储到文件系统中。
PHP 最强大最显着的特性之一,是它支持很大范围的数据库。您会发现利用 PHP 编写数据库支持的网页简单得难以置信。目前,PHP 支持如下数据库:
Adabas D Ingres Oracle (OCI7 and OCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro (read-only) mSQL Solid
Hyperwave Direct MS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
我们同时还有一个 DBX 扩展库使得您可以自由的使用该扩展库支持的任何数据库。另外,PHP 还支持 ODBC,即 Open Database Connection Standard(开放数据库连接标准),因此您可以连接任何其它支持该世界标准的数据库。
PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。您还可以开放原始网络端口,使得任何其它的协议能够协同工作。PHP 支持和所有 WEB 开发语言之间的 WDDX 复杂数据交换。关于相互连接,PHP 已经支持了对 Java 对象的即时连接,并且可以将他们自由的用作 PHP 对象。您甚至可以用我们的 CORBA 扩展库来访问远程对象。
PHP 具有极其有效的文本处理特性,支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。为了解析和访问 XML 文档,我们支持了 SAX 和 DOM 标准。您可以使用我们的 XSLT 扩展库来转换 XML 文档。
如果您将 PHP 用于电子商务领域,您会发现其 Cybercash payment、CyberMUT、VeriSign Payflow Pro 以及 CCVS 函数对于您的在线交易程序来所是非常有用的。
⑵ PHP __get和__set魔术方法在面向对象中的使用问题
php的面向对象思想编程中声明方法有三种不同的权限:public protect private。
public:权限是最大的,可以内部调用,实例调用等。
protected: 受保护类型,用于本类和继承类调用。
private: 私有类型,只有在本类中使用。
这些权限同样可以应用在变量声明中。
__set __get 都是php的魔术方法,主要是为了用来改变类的私有属性用的。
你觉得麻烦可以将private私有的变量改为公共public变量,这个要看需求和个人对面向对象的思考。
追问 : 我想知道的是(用private封装然后用__set或者__get )和(public设置类的属性)有什么不同.都可以取值赋值.
追答 : 没什么不同的,实现的效果都一样,只是private是为了限制访问入口少一些,或者之前用private时没有考虑到有如今的调用情况,所以在加了set或get。 比较public是所有人都可以访问,private是内部人可以访问,从权限来看,private会安全一些。
⑶ php面向对象 方法调用
因为你的gettotalsize()函数在你的pagination类外面定义的,所以pagination类无法读取你这个gettotalsize()函数。你应该把gettotalsize()函数放入pagination类中定义。
⑷ PHP com对象如何使用
更新和添加本身并不和你使用的什么对象、什么语言有直接必然联系!
本身是在于你对sql语句的了解!
Sql语句是独立于其他任何语言的一种数据库操作命令!
具体到你的问题:
1、添加:
sql 语法: insert into 表名称( 字段集合 ) values ( 字段值集合 )
比如: $conn -> execute(' insert into user ( uername, password ) values ( \'abc\', 123 )');
这条语句就向user表插入了一条数据, 并且给username和password字段写入了值
2、修改
sql 语法 update 表名称 set 字段名称 = 字段值 where 模式
比如 : $conn -> execute(' update user set username = \'bbb\' where id = 5');
这条语句修改了user表中id字段值为5的数据的 username字段的值!
建议楼主网络一下sql教程, 学习一下sql语句, 至少基本的sql 语句语法还是要知道的!
⑸ [php]对象操作的问题
那是对象初始化的值,你找到类里边的初始函数,一般是和类同名即:classCalculation($x,$y)或者是在构造函数__construct($x,$y)里边
这里的参数$x,y就对应 3,6
⑹ 怎么给 PHP 对象动态添加方法
来个例子:
<?php
$a=newstdclass();
$a->name=function(){echo'mylove';};
//调用的时候有点麻烦
$b=$a->name;
$b();
后来我想想,这特么和下面这种写法是一样的:
<?php
$a=newstdclass();
$b=$a->name=function(){echo'mylove';};
$b();
反正也不好玩啊。
⑺ php访问对象
$data = $m_request_data->data; #访问对象
这一句要注意了。你这里只是临时定义个变量。要想在类中全部能用它,
class A{
可以在类中先声明它
private $data;
或者定义一个静态方法
public static $data;
然后构造方法最后一句变为
public function __construct() {
…………
$this->data= $m_request_data->data; #访问对象
//静态方法是self::data = $m_request_data->data;
}
好了这里
function data(){
print_r($this->data);//直接用,打印还是取值$this->data->value();随你~~
//静态的是print_r(self::data);
}
⑻ 在PHP中遍历对象用什么
其实网络一下就知道
我们知道,php中,foreach可以很方便地对可迭代结构(例如数组,再如对象)进行迭代操作:
[php] view plain
foreach( $array as $elem){
var_mp($elem);
}
[php] view plain
foreach($obj as $key=>$value){
echo "$key=>$value".PHP_EOL;
}
因而我们想:如果对于一个实例化对象,对其进行foreach操作,会发生什么事情呢?
首先我们定义的基础类为:
[php] view plain
Class Test{
/* one public variable */
public $a;
public $b;
/* one private variable */
private $c;
public function __construct(){
$this->a = "public";
$this->b = "public";
$this->c = "private";
}
public function traverseInside(){
foreach($this as $key=>$value){
echo $key."=>".$value.EOL;
}
}
}
然后我们实例化该类,对其进行迭代,并与内部迭代的结果进行比较:
[php] view plain
$test = new Test;
echo "<hr>";
echo "traverse outside:".EOL;
foreach( $test as $key=>$value ){
echo $key."=>".$value.EOL;
}
echo "<hr>";
echo "traverse inside:".EOL;
$test->traverseInside();
迭代的结果为:
可以看出:外部foreach循环的结果,只是将对象的公有属性(public)循环出来了,而对于私有属性(private),外部foreach是无法循环出来的。因而我们如果想要在外部通过foreach循环出类的所有的属性(公有的和私有的),仅仅依靠foreach是不行的,必须要对类进行“改造”。如何对类进行改造呢?如果你了解foreach的实现(参考laruence的博客:http://www.laruence.com/2008/11/20/630.html),那么可以很轻松地找到相应的方案。另外一方面,《设计模式-可复用面向对象软件设计的基础》中也提到:通过将对象的访问和遍历从对象中分离出来并放入一个迭代器对象中,迭代器模式可以实现以不同的方式对对象进行遍历。我们暂时不去深挖这句话的意思,只要知道,使用迭代器可以对对象进行遍历即可。
PHP手册<预定义接口>部分指出:要实现迭代器模式,需要在可迭代对象中实现如下接口:
[php] view plain
abstractpublicmixedcurrent( void )
abstractpublicscalarkey( void )
abstractpublicvoidnext( void )
abstractpublicvoidrewind( void )
abstractpublicbooleanvalid( void )
有了这个。实现迭代器模式就很方便了,一个简单的实例如下:
[php] view plain
class TestIterator implements Iterator {
private $point = 0;
private $data = array(
"one","two","three",
);
public function __construct() {
$this->point = 0;
}
function rewind() {
$this->point = 0;
}
function current() {
return $this->data[$this->point];
}
function key() {
return $this->point;
}
function next() {
++$this->point;
}
function valid() {
return isset($this->data[$this->point]);
}
}
$it = new TestIterator;
foreach($it as $key => $value) {
echo $key, $value;
echo "\n";
}
当然,使用了迭代器的对象可以以如下方式进行遍历:
[php] view plain
$it = new TestIterator;
$it->rewind();
while ($it->valid()){
$key = $it->key();
$value = $it->current();
echo "$key=>$value";
$it->next();
}
最后附上YII中ListIterator(顾名思义,实现对List的迭代操作的迭代器)的实现:
[php] view plain
<?php
/**
* CListIterator class file.
*
* @author Qiang Xue <[email protected]>
* @link http://www.yiiframework.com/
* @right Copyright © 2008-2011 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
/**
* CListIterator implements an interator for {@link CList}.
*
* It allows CList to return a new iterator for traversing the items in the list.
*
* @author Qiang Xue <[email protected]>
* @version $Id$
* @package system.collections
* @since 1.0
*/
class CListIterator implements Iterator
{
/**
* @var array the data to be iterated through
*/
private $_d;
/**
* @var integer index of the current item
*/
private $_i;
/**
* @var integer count of the data items
*/
private $_c;
/**
* Constructor.
* @param array $data the data to be iterated through
*/
public function __construct(&$data)
{
$this->_d=&$data;
$this->_i=0;
$this->_c=count($this->_d);
}
/**
* Rewinds internal array pointer.
* This method is required by the interface Iterator.
*/
public function rewind()
{
$this->_i=0;
}
/**
* Returns the key of the current array item.
* This method is required by the interface Iterator.
* @return integer the key of the current array item
*/
public function key()
{
return $this->_i;
}
/**
* Returns the current array item.
* This method is required by the interface Iterator.
* @return mixed the current array item
*/
public function current()
{
return $this->_d[$this->_i];
}
/**
* Moves the internal pointer to the next array item.
* This method is required by the interface Iterator.
*/
public function next()
{
$this->_i++;
}
/**
* Returns whether there is an item at current position.
* This method is required by the interface Iterator.
* @return boolean
*/
public function valid()
{
return $this->_i<$this->_c;
}
}
⑼ PHP对象的操作( 添加、删除、使用)
php不是一切皆对象,只有类class才是对象,在类中可以添加,
(添加、删除、使用)的方法,当然你要编写一切皆对象的php程序也是可以的。看你功力了。
⑽ PHP中对象的小问题
首先,大多数情况下,涉及到类和函数(方法)的时候才会用到this!
在一个类中,即在同一个class下,会存在多个变量和函数,例如/*
class test{
private $user;
function setuser($user){
$this->user = $user ;//请注意这句话
}
}*/
这个小例子中出现了两个user,如何来区分?对于function来说,使用传递过来的参数或者new出来的变量,直接写名字;使用function之外的变量,用$this->变量名;
对象使用的是$对象->变量名,而不是this,二楼说的不清楚